34 Star 0 Fork 2

openKylin / nettle

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
asm.m4 2.05 KB
一键复制 编辑 原始数据 按行查看 历史
lixiuwen 提交于 2024-04-10 15:07 . Import Upstream version 3.9.1
divert(-1)
dnl FORTRAN style comment character
define(`C', `
dnl')dnl
dnl Disable m4 comment processing, since the default, #, is used for
dnl constants on some architectures, in particular ARM.
changecom()dnl
dnl Including files from the srcdir
define(`include_src', `include(srcdir/$1)')dnl
dnl default definition, changed in fat builds
define(`fat_transform', `$1')
define(`C_NAME', `SYMBOL_PREFIX`'fat_transform($1)')
dnl Pseudo ops
define(`DECLARE_FUNC',
`ifelse(ELF_STYLE,yes,
`.type $1,TYPE_FUNCTION',
COFF_STYLE, yes,
`.def $1
.scl 2
.type 32
.endef',
`')')
define(`GMP_NUMB_BITS',`')dnl
define(`PROLOGUE',
`.globl C_NAME($1)
DECLARE_FUNC(C_NAME($1))
C_NAME($1): ASM_X86_ENDBR')
define(`EPILOGUE',
`ifelse(ELF_STYLE,yes,
`.size C_NAME($1), . - C_NAME($1)',`')')
define(`m4_log2', `m4_log2_internal($1,1,0)')
define(`m4_log2_internal',
`ifelse($3, 10, `not-a-power-of-two',
$1, $2, $3,
`m4_log2_internal($1, eval(2*$2), eval(1 + $3))')')
dnl Argument to ALIGN is always in bytes, and converted to a
dnl logarithmic .align if necessary.
define(`ALIGN',
`.align ifelse(ALIGN_LOG,yes,`m4_log2($1)',$1)
')
define(`IF_BE', `ifelse(
WORDS_BIGENDIAN,yes,`$1',
WORDS_BIGENDIAN,no,`$2',
`errprint(`Unsupported endianness value',WORDS_BIGENDIAN,`
')
m4exit(1)')')
define(`IF_LE', `IF_BE(`$2', `$1')')
dnl Struct defining macros
dnl STRUCTURE(prefix)
define(`STRUCTURE', `define(`SOFFSET', 0)define(`SPREFIX', `$1')')dnl
dnl STRUCT(name, size)
define(`STRUCT',
`define(SPREFIX`_'$1, SOFFSET)dnl
define(`SOFFSET', eval(SOFFSET + ($2)))')dnl
dnl UCHAR(name)
define(`UCHAR', `STRUCT(`$1', 1)')dnl
dnl UNSIGNED(name)
define(`UNSIGNED', `STRUCT(`$1', 4)')dnl
dnl Offsets in aes_table
define(AES_SBOX_SIZE, 256)dnl
define(AES_TABLE_SIZE, 1024)dnl
STRUCTURE(AES)
STRUCT(SBOX, AES_SBOX_SIZE)
STRUCT(TABLE0, AES_TABLE_SIZE)
STRUCT(TABLE1, AES_TABLE_SIZE)
STRUCT(TABLE2, AES_TABLE_SIZE)
STRUCT(TABLE3, AES_TABLE_SIZE)
C For 64-bit implementation
STRUCTURE(P1305)
STRUCT(R0, 8)
STRUCT(R1, 8)
STRUCT(S0, 8)
STRUCT(S1, 8)
STRUCT(H0, 8)
STRUCT(H1, 8)
STRUCT(H2, 8)
divert
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openkylin/nettle.git
git@gitee.com:openkylin/nettle.git
openkylin
nettle
nettle
openkylin/nile

搜索帮助

344bd9b3 5694891 D2dac590 5694891