X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=serpent-sboxes-fast.S;h=f4fc682f4dd7c2aa7323b8771675ca1d0e0bca2c;hb=6bd58d7909b89a3e05003a63cdc642638fa653e6;hp=0adcc1349374749fc03cf6fc0bf3124802be10fc;hpb=36101d05fdd3f660375301ca9f017d2e16c228b7;p=avr-crypto-lib.git diff --git a/serpent-sboxes-fast.S b/serpent-sboxes-fast.S index 0adcc13..f4fc682 100644 --- a/serpent-sboxes-fast.S +++ b/serpent-sboxes-fast.S @@ -27,64 +27,8 @@ */ #include +#include "avr-asm-macros.S" -/******************************************************************************* -* MACRO SECTION * -*******************************************************************************/ - -.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 r0, _SFR_IO_ADDR(SREG) - cli - in \reg1, _SFR_IO_ADDR(SPL) - in \reg2, _SFR_IO_ADDR(SPH) - sbiw \reg1, \size - out _SFR_IO_ADDR(SPH), \reg2 - out _SFR_IO_ADDR(SPL), \reg1 - out _SFR_IO_ADDR(SREG), r0 -.endm - -.macro stack_free size:req, reg1=r30, reg2=r31 - in r0, _SFR_IO_ADDR(SREG) - cli - in \reg1, _SFR_IO_ADDR(SPL) - in \reg2, _SFR_IO_ADDR(SPH) - adiw \reg1, \size - out _SFR_IO_ADDR(SPH), \reg2 - out _SFR_IO_ADDR(SPL), \reg1 - out _SFR_IO_ADDR(SREG), r0 -.endm - -/******************************************************************************* -* END of MACRO SECTION * -*******************************************************************************/ serpent_sbox_fast: .byte 0x33, 0x88, 0xFF, 0x11, 0xAA, 0x66, 0x55, 0xBB