in scripts/symcryptasm_processor.py [0:0]
def gen_function_defines(architecture, mapping, arg_count, reg_count, start=True):
defines = ""
if architecture == "amd64":
prefix64 = "Q"
prefix32 = "D"
prefix16 = "W"
prefix8 = "B"
elif architecture == "arm64":
prefix64 = "X_"
prefix32 = "W_"
else:
logging.error("Unhandled architecture (%s) in gen_function_defines" % architecture)
exit(1)
for (index, reg) in mapping.items():
if (index != 'H') and (index >= max(arg_count+1, reg_count)):
continue
if start:
if (reg.name64 is not None):
defines += "#define %s%s %s\n" % (prefix64, index, reg.name64)
if (reg.name32 is not None):
defines += "#define %s%s %s\n" % (prefix32, index, reg.name32)
if (reg.name16 is not None):
defines += "#define %s%s %s\n" % (prefix16, index, reg.name16)
if (reg.name8 is not None):
defines += "#define %s%s %s\n" % (prefix8, index, reg.name8)
else:
if (reg.name64 is not None):
defines += "#undef %s%s\n" % (prefix64, index)
if (reg.name32 is not None):
defines += "#undef %s%s\n" % (prefix32, index)
if (reg.name16 is not None):
defines += "#undef %s%s\n" % (prefix16, index)
if (reg.name8 is not None):
defines += "#undef %s%s\n" % (prefix8, index)
return defines