The unified diff between revisions [63c067b5..] and [67768644..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'modules/alg_amd64/asm_macr.h'
#
#
# patch "modules/alg_amd64/asm_macr.h"
# from [c8fe2875602bdeeb27250cf791110e664b82cf0e]
# to [b9d8a0bb0350c0f45355b78469fc63bb48c1b590]
#
============================================================
--- modules/alg_amd64/asm_macr.h c8fe2875602bdeeb27250cf791110e664b82cf0e
+++ modules/alg_amd64/asm_macr.h b9d8a0bb0350c0f45355b78469fc63bb48c1b590
@@ -44,7 +44,7 @@ func_name:
jge LABEL##_LOOP
/*************************************************
- Conditional Jumps *
+* Conditional Jumps *
*************************************************/
#define JUMP_IF_ZERO(REG, LABEL) \
cmp IMM(0), REG; \
@@ -55,9 +55,48 @@ func_name:
jl LABEL
/*************************************************
+* Register Names *
+*************************************************/
+#define R0 %rax
+#define R1 %rbx
+#define R2 %rcx
+#define R3 %rdx
+#define R4 %rsp
+#define R5 %rbp
+#define R6 %rsi
+#define R7 %rdi
+#define R8 %r8
+#define R9 %r9
+#define R10 %r10
+#define R11 %r11
+#define R12 %r12
+#define R13 %r13
+#define R14 %r14
+#define R15 %r15
+#define R16 %r16
+
+#define ARG_1 R7
+#define ARG_2 R6
+#define ARG_3 R3
+#define ARG_4 R2
+#define ARG_5 R8
+#define ARG_6 R9
+
+#define TEMP_1 R10
+#define TEMP_2 R11
+#define TEMP_3 ARG_6
+#define TEMP_4 ARG_5
+#define TEMP_5 ARG_4
+#define TEMP_6 ARG_3
+#define TEMP_7 ARG_2
+#define TEMP_8 ARG_1
+#define TEMP_9 R0
+
+/*************************************************
* Memory Access Operations *
*************************************************/
#define ARRAY8(REG, NUM) 8*(NUM)(REG)
+#define ARRAY4(REG, NUM) 4*(NUM)(REG)
#define ASSIGN(TO, FROM) mov FROM, TO
@@ -66,19 +105,23 @@ func_name:
*************************************************/
#define IMM(VAL) $VAL
-#define ADD(TO, FROM) addq FROM, TO
-#define ADD_LAST_CARRY(REG) adcq IMM(0), REG
+#define ADD(TO, FROM) add FROM, TO
+#define ADD_LAST_CARRY(REG) adc IMM(0), REG
#define ADD_IMM(TO, NUM) ADD(TO, IMM(NUM))
-#define ADD_W_CARRY(TO1, TO2, FROM) addq FROM, TO1; adcq IMM(0), TO2;
+#define ADD_W_CARRY(TO1, TO2, FROM) add FROM, TO1; adc IMM(0), TO2;
#define SUB_IMM(TO, NUM) sub IMM(NUM), TO
-#define MUL(REG) mulq REG
+#define MUL(REG) mul REG
-#define XOR(TO, FROM) xorq FROM, TO
-#define AND(TO, FROM) andq FROM, TO
-#define OR(TO, FROM) orq FROM, TO
-#define NOT(REG) notq REG
+#define XOR(TO, FROM) xor FROM, TO
+#define AND(TO, FROM) and FROM, TO
+#define OR(TO, FROM) or FROM, TO
+#define NOT(REG) not REG
#define ZEROIZE(REG) XOR(REG, REG)
#define RETURN_VALUE_IS(V) ASSIGN(%rax, V)
+#define ROTL_IMM(REG, NUM) rol IMM(NUM), REG
+#define ROTR_IMM(REG, NUM) ror IMM(NUM), REG
+#define ADD3_IMM(TO, FROM, NUM) lea NUM(TO,FROM,1), TO
+
#endif