From e54ea73bd09b6925849e109a54e573dc313e3770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Fri, 15 Feb 2002 15:32:38 +0100 Subject: [PATCH] * asm.m4: Define and use structure-defining macros. Rev: src/nettle/asm.m4:1.5 --- asm.m4 | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/asm.m4 b/asm.m4 index de447264..e296c0df 100644 --- a/asm.m4 +++ b/asm.m4 @@ -1,26 +1,42 @@ changequote(<,>)dnl changecom(!,< >)dnl -dnl FIXME: Add some struct macros similar to the once used in Amiga assemblers + +dnl (progn (modify-syntax-entry ?< "(>") (modify-syntax-entry ?> ")<") ) +dnl Struct defining macros + +dnl STRUCTURE(prefix) +define(<STRUCTURE>, <define(<SOFFSET>, 0)define(<SPREFIX>, <$1>)>) + +dnl STRUCT(name, size) +define(STRUCT, +<define(SPREFIX<_>$1, SOFFSET)dnl + define(<SOFFSET>, eval(SOFFSET + ($2)))>) + +dnl UNSIGNED(name) +define(<UNSIGNED>, <STRUCT(<$1>, 4)>) + dnl Offsets in aes_ctx and aes_table -define(AES_KEYS, 0)dnl -define(AES_NROUNDS, 240)dnl +STRUCTURE(AES) + STRUCT(KEYS, 4*60) + UNSIGNED(NROUNDS) define(AES_SBOX_SIZE, 256)dnl define(AES_IDX_SIZE, 16)dnl define(AES_TABLE_SIZE, 1024)dnl -define(AES_SBOX, 0)dnl -define(AES_IDX1, AES_SBOX_SIZE)dnl -define(AES_IDX2, eval(AES_IDX1 + AES_IDX_SIZE))dnl -define(AES_IDX3, eval(AES_IDX2 + AES_IDX_SIZE))dnl -define(AES_TABLE0, eval(AES_IDX3 + AES_IDX_SIZE))dnl -define(AES_TABLE1, eval(AES_TABLE0 + AES_TABLE_SIZE))dnl -define(AES_TABLE2, eval(AES_TABLE1 + AES_TABLE_SIZE))dnl -define(AES_TABLE3, eval(AES_TABLE2 + AES_TABLE_SIZE))dnl +STRUCT(AES) + STRUCT(SBOX, AES_SBOX_SIZE) + + STRUCT(IDX1, AES_IDX_SIZE) + STRUCT(IDX2, AES_IDX_SIZE) + STRUCT(IDX3, AES_IDX_SIZE) -dnl define(AES_SIDX1, 304)dnl -dnl define(AES_SIDX2, 320)dnl -dnl define(AES_SIDX3, 336)dnl -dnl define(AES_TABLE, 352)dnl + STRUCT(SIDX1, AES_IDX_SIZE) + STRUCT(SIDX2, AES_IDX_SIZE) + STRUCT(SIDX3, AES_IDX_SIZE) + STRUCT(TABLE0, AES_TABLE_SIZE) + STRUCT(TABLE1, AES_TABLE_SIZE) + STRUCT(TABLE2, AES_TABLE_SIZE) + STRUCT(TABLE3, AES_TABLE_SIZE) -- GitLab