]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - memxor.S
updated Makefile
[avr-crypto-lib.git] / memxor.S
index 2e8223766785f1aefed253cc2f681041e875554a..a32058bfc4c3c93d22abd82e23f83ae30d4e56e9 100644 (file)
--- a/memxor.S
+++ b/memxor.S
@@ -1,6 +1,6 @@
 /* memxor.S */
 /*
-    This file is part of the Crypto-avr-lib/microcrypt-lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-/* 
+/*
  * File:        memxor.S
  * Author:      Daniel Otte
  * Date:        2008-08-07
  * License:     GPLv3 or later
  * Description: memxor, XORing one block into another
- * 
+ *
  */
-#include <avr/io.h>
-
-
-.macro push_ p1:req, p2:vararg
-       push \p1
-.ifnb \p2      
-       push_ \p2
-.endif
-.endm
-
-.macro pop_ p1:req, p2:vararg
-       pop \p1
-.ifnb \p2      
-       pop_ \p2
-.endif
-.endm
-
-.macro push_range from:req, to:req
-       push \from
-.if     \to-\from
-       push_range "(\from+1)",\to
-.endif         
-.endm
-
-.macro pop_range from:req, to:req
-       pop \to
-.if     \to-\from
-       pop_range \from,"(\to-1)"       
-.endif
-.endm
-
-.macro stack_alloc size:req, reg1=r30, reg2=r31
-       in \reg1, _SFR_IO_ADDR(SPL)
-       in \reg2, _SFR_IO_ADDR(SPH)
-       sbiw r30, \size 
-       out  _SFR_IO_ADDR(SPH), \reg2
-       out  _SFR_IO_ADDR(SPL), \reg1
-.endm
-
-.macro stack_free size:req, reg1=r30, reg2=r31
-       in \reg1, _SFR_IO_ADDR(SPL)
-       in \reg2, _SFR_IO_ADDR(SPH)
-       adiw r30, \size 
-       out  _SFR_IO_ADDR(SPH), \reg2
-       out  _SFR_IO_ADDR(SPL), \reg1
-.endm
 
 /*
  * void memxor(void* dest, const void* src, uint16_t n);
@@ -86,9 +39,7 @@ memxor:
        movw r30, r24
        movw r26, r22
        movw r24, r20
-       tst r24
-       brne 1f
-       tst r25
+       adiw r24, 0
        breq 2f
 1:
        ld r20, X+
@@ -99,17 +50,17 @@ memxor:
        brne 1b
 2:
        ret
-       
-       
-       
-       
-       
-       
-       
-       
-       
-       
-       
-       
-       
+
+
+
+
+
+
+
+
+
+
+
+
+