From dea4f902b7295bd1b270c77dc5532d67ef9fdfcf Mon Sep 17 00:00:00 2001 From: Jeremiah Orians Date: Sun, 27 Oct 2019 12:55:07 -0400 Subject: [PATCH] Adding support for additional type compatibility with C and backported regression fix for ARMv7l debug headers --- cc.h | 2 +- cc_core.c | 79 +++++++++------ cc_types.c | 36 +++---- test/common_amd64/amd64_defs.M1 | 5 +- test/common_armv7l/ELF-armv7l-debug.hex2 | 4 +- test/common_armv7l/armv7l_defs.M1 | 1 + test/common_armv7l/libc-core.M1 | 54 +++++++++- test/common_x86/x86_defs.M1 | 5 +- test/test.answers | 120 +++++++++++------------ test/test100/proof.answer | 2 +- test/test23/proof.answer | 2 +- 11 files changed, 187 insertions(+), 123 deletions(-) diff --git a/cc.h b/cc.h index c7a1696..84ab639 100644 --- a/cc.h +++ b/cc.h @@ -49,7 +49,7 @@ struct type struct type* next; int size; int offset; - int SIGNED; + int is_signed; struct type* indirect; struct type* members; struct type* type; diff --git a/cc_core.c b/cc_core.c index ebb4763..6a965f1 100644 --- a/cc_core.c +++ b/cc_core.c @@ -517,7 +517,7 @@ void common_recursion(FUNCTION f) else if(ARMV7L == Architecture) emit_out("{R1} POP_ALWAYS\t# _common_recursion\n"); } -void general_recursion( FUNCTION f, char* s, char* name, FUNCTION iterate) +void general_recursion(FUNCTION f, char* s, char* name, FUNCTION iterate) { if(match(name, global_token->s)) { @@ -527,6 +527,27 @@ void general_recursion( FUNCTION f, char* s, char* name, FUNCTION iterate) } } +void arithmetic_recursion(FUNCTION f, char* s1, char* s2, char* name, FUNCTION iterate) +{ + if(match(name, global_token->s)) + { + common_recursion(f); + if(NULL == current_target) + { + emit_out(s2); + } + else if(current_target->is_signed) + { + emit_out(s1); + } + else + { + emit_out(s2); + } + iterate(); + } +} + int ceil_log2(int a) { int result = 0; @@ -706,43 +727,43 @@ void additive_expr_stub() { if((KNIGHT_POSIX == Architecture) || (KNIGHT_NATIVE == Architecture)) { - general_recursion(postfix_expr, "ADD R0 R1 R0\n", "+", additive_expr_stub); - general_recursion(postfix_expr, "SUB R0 R1 R0\n", "-", additive_expr_stub); - general_recursion(postfix_expr, "MUL R0 R1 R0\n", "*", additive_expr_stub); - general_recursion(postfix_expr, "DIVU R0 R1 R0\n", "/", additive_expr_stub); - general_recursion(postfix_expr, "MODU R0 R1 R0\n", "%", additive_expr_stub); - general_recursion(postfix_expr, "SAL R0 R1 R0\n", "<<", additive_expr_stub); - general_recursion(postfix_expr, "SAR R0 R1 R0\n", ">>", additive_expr_stub); + arithmetic_recursion(postfix_expr, "ADD R0 R1 R0\n", "ADDU R0 R1 R0\n", "+", additive_expr_stub); + arithmetic_recursion(postfix_expr, "SUB R0 R1 R0\n", "SUBU R0 R1 R0\n", "-", additive_expr_stub); + arithmetic_recursion(postfix_expr, "MUL R0 R1 R0\n", "MULU R0 R1 R0\n", "*", additive_expr_stub); + arithmetic_recursion(postfix_expr, "DIV R0 R1 R0\n", "DIVU R0 R1 R0\n", "/", additive_expr_stub); + arithmetic_recursion(postfix_expr, "MOD R0 R1 R0\n", "MODU R0 R1 R0\n", "%", additive_expr_stub); + arithmetic_recursion(postfix_expr, "SAL R0 R1 R0\n", "SAL R0 R1 R0\n", "<<", additive_expr_stub); + arithmetic_recursion(postfix_expr, "SAR R0 R1 R0\n", "SAR R0 R1 R0\n", ">>", additive_expr_stub); } else if(X86 == Architecture) { - general_recursion(postfix_expr, "ADD_ebx_to_eax\n", "+", additive_expr_stub); - general_recursion(postfix_expr, "SUBTRACT_eax_from_ebx_into_ebx\nMOVE_ebx_to_eax\n", "-", additive_expr_stub); - general_recursion(postfix_expr, "MULTIPLY_eax_by_ebx_into_eax\n", "*", additive_expr_stub); - general_recursion(postfix_expr, "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nDIVIDE_eax_by_ebx_into_eax\n", "/", additive_expr_stub); - general_recursion(postfix_expr, "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nMODULUS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "%", additive_expr_stub); - general_recursion(postfix_expr, "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAL_eax_cl\n", "<<", additive_expr_stub); - general_recursion(postfix_expr, "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAR_eax_cl\n", ">>", additive_expr_stub); + arithmetic_recursion(postfix_expr, "ADD_ebx_to_eax\n", "ADD_ebx_to_eax\n", "+", additive_expr_stub); + arithmetic_recursion(postfix_expr, "SUBTRACT_eax_from_ebx_into_ebx\nMOVE_ebx_to_eax\n", "SUBTRACT_eax_from_ebx_into_ebx\nMOVE_ebx_to_eax\n", "-", additive_expr_stub); + arithmetic_recursion(postfix_expr, "MULTIPLYS_eax_by_ebx_into_eax\n", "MULTIPLY_eax_by_ebx_into_eax\n", "*", additive_expr_stub); + arithmetic_recursion(postfix_expr, "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nDIVIDES_eax_by_ebx_into_eax\n", "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nDIVIDE_eax_by_ebx_into_eax\n", "/", additive_expr_stub); + arithmetic_recursion(postfix_expr, "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nMODULUSS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nMODULUS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "%", additive_expr_stub); + arithmetic_recursion(postfix_expr, "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAL_eax_cl\n", "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAL_eax_cl\n", "<<", additive_expr_stub); + arithmetic_recursion(postfix_expr, "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAR_eax_cl\n", "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAR_eax_cl\n", ">>", additive_expr_stub); } else if(AMD64 == Architecture) { - general_recursion(postfix_expr, "ADD_rbx_to_rax\n", "+", additive_expr_stub); - general_recursion(postfix_expr, "SUBTRACT_rax_from_rbx_into_rbx\nMOVE_rbx_to_rax\n", "-", additive_expr_stub); - general_recursion(postfix_expr, "MULTIPLY_rax_by_rbx_into_rax\n", "*", additive_expr_stub); - general_recursion(postfix_expr, "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nDIVIDE_rax_by_rbx_into_rax\n", "/", additive_expr_stub); - general_recursion(postfix_expr, "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nMODULUS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "%", additive_expr_stub); - general_recursion(postfix_expr, "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAL_rax_cl\n", "<<", additive_expr_stub); - general_recursion(postfix_expr, "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAR_rax_cl\n", ">>", additive_expr_stub); + arithmetic_recursion(postfix_expr, "ADD_rbx_to_rax\n", "ADD_rbx_to_rax\n", "+", additive_expr_stub); + arithmetic_recursion(postfix_expr, "SUBTRACT_rax_from_rbx_into_rbx\nMOVE_rbx_to_rax\n", "SUBTRACT_rax_from_rbx_into_rbx\nMOVE_rbx_to_rax\n", "-", additive_expr_stub); + arithmetic_recursion(postfix_expr, "MULTIPLYS_rax_by_rbx_into_rax\n", "MULTIPLY_rax_by_rbx_into_rax\n", "*", additive_expr_stub); + arithmetic_recursion(postfix_expr, "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nDIVIDES_rax_by_rbx_into_rax\n", "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nDIVIDE_rax_by_rbx_into_rax\n", "/", additive_expr_stub); + arithmetic_recursion(postfix_expr, "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nMODULUSS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nMODULUS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "%", additive_expr_stub); + arithmetic_recursion(postfix_expr, "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAL_rax_cl\n", "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAL_rax_cl\n", "<<", additive_expr_stub); + arithmetic_recursion(postfix_expr, "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAR_rax_cl\n", "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAR_rax_cl\n", ">>", additive_expr_stub); } else if(ARMV7L == Architecture) { - general_recursion(postfix_expr, "'0' R0 R0 ADD R1 ARITH2_ALWAYS\n", "+", additive_expr_stub); - general_recursion(postfix_expr, "'0' R0 R0 SUB R1 ARITH2_ALWAYS\n", "-", additive_expr_stub); - general_recursion(postfix_expr, "'9' R0 '0' R1 MUL R0 ARITH2_ALWAYS\n", "*", additive_expr_stub); - general_recursion(postfix_expr, "{LR} PUSH_ALWAYS\n^~divide CALL_ALWAYS\n{LR} POP_ALWAYS\n", "/", additive_expr_stub); - general_recursion(postfix_expr, "{LR} PUSH_ALWAYS\n^~modulus CALL_ALWAYS\n{LR} POP_ALWAYS\n", "%", additive_expr_stub); - general_recursion(postfix_expr, "LEFT R1 R0 R0 SHIFT AUX_ALWAYS\n", "<<", additive_expr_stub); - general_recursion(postfix_expr, "RIGHT R1 R0 R0 SHIFT AUX_ALWAYS\n", ">>", additive_expr_stub); + arithmetic_recursion(postfix_expr, "'0' R0 R0 ADD R1 ARITH2_ALWAYS\n", "'0' R0 R0 ADD R1 ARITH2_ALWAYS\n", "+", additive_expr_stub); + arithmetic_recursion(postfix_expr, "'0' R0 R0 SUB R1 ARITH2_ALWAYS\n", "'0' R0 R0 SUB R1 ARITH2_ALWAYS\n", "-", additive_expr_stub); + arithmetic_recursion(postfix_expr, "'9' R0 '0' R1 MULS R0 ARITH2_ALWAYS\n", "'9' R0 '0' R1 MUL R0 ARITH2_ALWAYS\n", "*", additive_expr_stub); + arithmetic_recursion(postfix_expr, "{LR} PUSH_ALWAYS\n^~divides CALL_ALWAYS\n{LR} POP_ALWAYS\n", "{LR} PUSH_ALWAYS\n^~divide CALL_ALWAYS\n{LR} POP_ALWAYS\n", "/", additive_expr_stub); + arithmetic_recursion(postfix_expr, "{LR} PUSH_ALWAYS\n^~moduluss CALL_ALWAYS\n{LR} POP_ALWAYS\n", "{LR} PUSH_ALWAYS\n^~modulus CALL_ALWAYS\n{LR} POP_ALWAYS\n", "%", additive_expr_stub); + arithmetic_recursion(postfix_expr, "LEFT R1 R0 R0 SHIFT AUX_ALWAYS\n", "LEFT R1 R0 R0 SHIFT AUX_ALWAYS\n", "<<", additive_expr_stub); + arithmetic_recursion(postfix_expr, "RIGHT R1 R0 R0 SHIFT AUX_ALWAYS\n", "RIGHT R1 R0 R0 SHIFT AUX_ALWAYS\n", ">>", additive_expr_stub); } } diff --git a/cc_types.c b/cc_types.c index d938e4f..fec2099 100644 --- a/cc_types.c +++ b/cc_types.c @@ -29,16 +29,16 @@ void initialize_types() /* Define void */ global_types = calloc(1, sizeof(struct type)); global_types->name = "void"; - global_types->SIGNED = FALSE; + global_types->is_signed = FALSE; global_types->size = register_size; global_types->type = global_types; /* void* has the same properties as void */ global_types->indirect = global_types; - /* Define UNSIGNED LONG */ + /* Define UNis_signed LONG */ struct type* a = calloc(1, sizeof(struct type)); a->name = "SCM"; - a->SIGNED = FALSE; + a->is_signed = FALSE; a->size = register_size; a->indirect = a; a->type = a; @@ -46,7 +46,7 @@ void initialize_types() /* Define LONG */ struct type* b = calloc(1, sizeof(struct type)); b->name = "long"; - b->SIGNED = TRUE; + b->is_signed = TRUE; b->size = register_size; b->indirect = b; b->type = b; @@ -54,7 +54,7 @@ void initialize_types() /* Define UNSIGNED */ struct type* c = calloc(1, sizeof(struct type)); c->name = "unsigned"; - c->SIGNED = FALSE; + c->is_signed = FALSE; c->size = register_size; c->type = c; /* unsigned* has the same properties as unsigned */ @@ -63,7 +63,7 @@ void initialize_types() /* Define int */ struct type* d = calloc(1, sizeof(struct type)); d->name = "int"; - d->SIGNED = TRUE; + d->is_signed = TRUE; d->size = register_size; /* int* has the same properties as int */ d->indirect = d; @@ -72,33 +72,33 @@ void initialize_types() /* Define char* */ struct type* e = calloc(1, sizeof(struct type)); e->name = "char*"; - e->SIGNED = FALSE; + e->is_signed = FALSE; e->size = register_size; e->type = e; /* Define char */ struct type* f = calloc(1, sizeof(struct type)); f->name = "char"; - f->SIGNED = FALSE; + f->is_signed = FALSE; f->size = 1; f->type = f; /* Define char** */ struct type* g = calloc(1, sizeof(struct type)); g->name = "char**"; - g->SIGNED = FALSE; + g->is_signed = FALSE; g->size = register_size; g->type = e; g->indirect = g; - /*fix up indrects for chars */ + /*fix up indirects for chars */ f->indirect = e; e->indirect = g; /* Define FILE */ struct type* h = calloc(1, sizeof(struct type)); h->name = "FILE"; - h->SIGNED = FALSE; + h->is_signed = FALSE; h->size = register_size; h->type = h; /* FILE* has the same properties as FILE */ @@ -107,7 +107,7 @@ void initialize_types() /* Define FUNCTION */ struct type* i = calloc(1, sizeof(struct type)); i->name = "FUNCTION"; - i->SIGNED = FALSE; + i->is_signed = FALSE; i->size = register_size; i->type = i; /* FUNCTION* has the same properties as FUNCTION */ @@ -116,13 +116,13 @@ void initialize_types() /* Primitives mes.c wanted */ struct type* j = calloc(1, sizeof(struct type)); j->name = "size_t"; - j->SIGNED = FALSE; + j->is_signed = FALSE; j->size = register_size; j->indirect = j; struct type* k = calloc(1, sizeof(struct type)); k->name = "ssize_t"; - k->SIGNED = FALSE; + k->is_signed = FALSE; k->size = register_size; k->indirect = k; @@ -261,14 +261,6 @@ void create_struct() } -/* - * type-name: - * char * - * int - * struct - * FILE - * void - */ struct type* type_name() { struct type* ret; diff --git a/test/common_amd64/amd64_defs.M1 b/test/common_amd64/amd64_defs.M1 index bec3224..db6d77f 100644 --- a/test/common_amd64/amd64_defs.M1 +++ b/test/common_amd64/amd64_defs.M1 @@ -33,6 +33,7 @@ DEFINE COPY_rdi_to_rbp 4889FD DEFINE COPY_rsp_to_rbp 4889E5 DEFINE COPY_RSP_to_RDI 4889E7 DEFINE DIVIDE_rax_by_rbx_into_rax 48F7FB +DEFINE DIVIDES_rax_by_rbx_into_rax 48F7F3 DEFINE JUMP E9 DEFINE JUMP_EQ 0F84 DEFINE JUMP_NE 0F85 @@ -53,11 +54,13 @@ DEFINE LOAD_INTEGER_rdx 488B12 DEFINE LOAD_INTEGER_rsi 488B36 DEFINE LOAD_RSP_IMMEDIATE_into_rax 488B8424 DEFINE MODULUS_rax_from_rbx_into_rbx 48F7FB +DEFINE MODULUSS_rax_from_rbx_into_rbx 48F7F3 DEFINE MOVE_rbx_to_rax 4889D8 DEFINE MOVE_rdx_to_rax 4889D0 DEFINE MOVEZX 480FB6C0 DEFINE MOVESX 4863C0 -DEFINE MULTIPLY_rax_by_rbx_into_rax 48F7E3 +DEFINE MULTIPLY_rax_by_rbx_into_rax 48F7EB +DEFINE MULTIPLYS_rax_by_rbx_into_rax 48F7E3 DEFINE NOP 0000000000000000 DEFINE NOT_rax 48F7D0 DEFINE OR_rax_rbx 4809D8 diff --git a/test/common_armv7l/ELF-armv7l-debug.hex2 b/test/common_armv7l/ELF-armv7l-debug.hex2 index 4f3adb8..e982f43 100644 --- a/test/common_armv7l/ELF-armv7l-debug.hex2 +++ b/test/common_armv7l/ELF-armv7l-debug.hex2 @@ -76,12 +76,12 @@ %ELF_end>ELF_base # ph_filesz %ELF_end>ELF_base # ph_memsz -05 00 00 00 # p_flags +07 00 00 00 # p_flags 00 00 01 00 # alignment # @60 :ELF_program_header__data -01 00 00 00 # ph_type: PT-LOAD = 1 +00 00 00 00 # ph_type: PT-LOAD = 0 00 00 00 00 # ph_offset &ELF_base # ph_vaddr &ELF_base # ph_physaddr diff --git a/test/common_armv7l/armv7l_defs.M1 b/test/common_armv7l/armv7l_defs.M1 index 57fb81e..ae3edf7 100644 --- a/test/common_armv7l/armv7l_defs.M1 +++ b/test/common_armv7l/armv7l_defs.M1 @@ -102,6 +102,7 @@ DEFINE AND 00 DEFINE CMP 005 DEFINE CMPI8 005 DEFINE MUL 0 +DEFINE MULS 1 DEFINE OR 08 DEFINE SHIFT A0 DEFINE SUB 04 diff --git a/test/common_armv7l/libc-core.M1 b/test/common_armv7l/libc-core.M1 index e12aaf1..6bdf7ef 100644 --- a/test/common_armv7l/libc-core.M1 +++ b/test/common_armv7l/libc-core.M1 @@ -36,7 +36,7 @@ !1 R7 LOADI8_ALWAYS ; Setup for final exit SYSCALL_ALWAYS ; Exit -# Stub that simply returns +# Unsigned Divide :divide {R4} PUSH_ALWAYS ; Protect R4 {R3} PUSH_ALWAYS ; Protect R3 @@ -47,7 +47,6 @@ !0 R0 LOADI8_ALWAYS ; MOV R0,#0 !0 CMPI8 R2 IMM_ALWAYS ; CMP R2,#0 -; !0 R2 RSUB R2 ARITH_LT ; RSBLT R2,R2,#0 !1 R0 SUB R0 ARITH_LT ; SUBLT R0,R0,#1 !0 CMPI8 R3 IMM_ALWAYS ; CMP R3,#0 !0 R3 RSUB R3 ARITH_LT ; RSBLT R3,R3,#0 @@ -66,8 +65,6 @@ !0 CMPI8 R0 IMM_ALWAYS ; CMP R0,#0 ^~divide_loop JUMP_NE ; BNE loop -; !0 CMPI8 R4 IMM_ALWAYS ; CMP R4,#0 -; !0 R2 RSUB R2 ARITH_NE ; RSBNE R2,R2,#0 '0' R2 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R2 {R2} POP_ALWAYS ; Restore R2 @@ -75,10 +72,57 @@ {R4} POP_ALWAYS ; Restore R4 '1' LR RETURN -# Stub that simply returns +# Signed Divide +:divides + {R4} PUSH_ALWAYS ; Protect R4 + {R3} PUSH_ALWAYS ; Protect R3 + {R2} PUSH_ALWAYS ; Protect R2 + + '0' R0 R3 NO_SHIFT MOVE_ALWAYS ; MOV R3,R0 + '0' R1 R2 NO_SHIFT MOVE_ALWAYS ; MOV R2,R1 + + !0 R0 LOADI8_ALWAYS ; MOV R0,#0 + !0 CMPI8 R2 IMM_ALWAYS ; CMP R2,#0 + !0 R2 RSUB R2 ARITH_LT ; RSBLT R2,R2,#0 + !1 R0 SUB R0 ARITH_LT ; SUBLT R0,R0,#1 + !0 CMPI8 R3 IMM_ALWAYS ; CMP R3,#0 + !0 R3 RSUB R3 ARITH_LT ; RSBLT R3,R3,#0 + '0' R0 R0 MVN_LT ; MVNLT R0,R0 + '0' R0 R4 NO_SHIFT MOVE_ALWAYS ; MOV R4,R0 + + !32 R0 LOADI8_ALWAYS ; MOV R0,#32. + !0 R1 LOADI8_ALWAYS ; MOV R1,#0 +:divides_loop + '0' R2 R2 ADDS R2 ARITH2_ALWAYS ; ADDS R2,R2,R2 + '0' R1 R1 ADCS R1 ARITH2_ALWAYS ; ADCS R1,R1,R1 + '0' R3 CMP R1 AUX_ALWAYS ; CMP R1,R3 + '0' R3 R1 SUB R1 ARITH2_GE ; SUBGE R1,R1,R3 + !1 R2 ADD R2 ARITH_GE ; ADDGE R2,R2,#1 + !1 R0 SUB R0 ARITH_ALWAYS ; SUB R0,R0,#1 + !0 CMPI8 R0 IMM_ALWAYS ; CMP R0,#0 + ^~divides_loop JUMP_NE ; BNE loop + + !0 CMPI8 R4 IMM_ALWAYS ; CMP R4,#0 + !0 R2 RSUB R2 ARITH_NE ; RSBNE R2,R2,#0 + '0' R2 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R2 + + {R2} POP_ALWAYS ; Restore R2 + {R3} POP_ALWAYS ; Restore R3 + {R4} POP_ALWAYS ; Restore R4 + '1' LR RETURN + +# Unsigned Modulus :modulus {LR} PUSH_ALWAYS ; Prepare to leverage divide ^~divide CALL_ALWAYS ; Use divide '0' R1 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R1 {LR} POP_ALWAYS ; Prepare for return '1' LR RETURN + +# Signed Modulus +:moduluss + {LR} PUSH_ALWAYS ; Prepare to leverage divide + ^~divides CALL_ALWAYS ; Use divides + '0' R1 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R1 + {LR} POP_ALWAYS ; Prepare for return + '1' LR RETURN diff --git a/test/common_x86/x86_defs.M1 b/test/common_x86/x86_defs.M1 index ef081da..9d7461f 100644 --- a/test/common_x86/x86_defs.M1 +++ b/test/common_x86/x86_defs.M1 @@ -35,6 +35,7 @@ DEFINE COPY_esp_to_ebp 89E5 DEFINE COPY_esp_to_ecx 89E1 DEFINE COPY_esp_to_edi 89E7 DEFINE DIVIDE_eax_by_ebx_into_eax F7FB +DEFINE DIVIDES_eax_by_ebx_into_eax F7F3 DEFINE INT_80 CD80 DEFINE JUMP E9 DEFINE JUMP_EQ 0F84 @@ -56,11 +57,13 @@ DEFINE LOAD_INTEGER_ebx 8B1B DEFINE LOAD_INTEGER_ecx 8B09 DEFINE LOAD_INTEGER_edx 8B12 DEFINE MODULUS_eax_from_ebx_into_ebx F7FB +DEFINE MODULUSS_eax_from_ebx_into_ebx F7F3 DEFINE MOVEZBL 0FB6C0 DEFINE MOVE_ebx_to_eax 89D8 DEFINE MOVE_ecx_to_eax 89C8 DEFINE MOVE_edx_to_eax 89D0 -DEFINE MULTIPLY_eax_by_ebx_into_eax F7E3 +DEFINE MULTIPLY_eax_by_ebx_into_eax F7EB +DEFINE MULTIPLYS_eax_by_ebx_into_eax F7E3 DEFINE NOP 00000000 DEFINE NOT_eax F7D0 DEFINE OR_eax_ebx 09D8 diff --git a/test/test.answers b/test/test.answers index 4f5794f..bdbaeae 100644 --- a/test/test.answers +++ b/test/test.answers @@ -1,132 +1,132 @@ e4482d2133772d1d9a00d30a8f46fee405a20b2354414fc735cbed077be7b61b test/results/test00-amd64-binary -c35f3652100b9d0f46df4dcf00f7feb011993512d1cf48fb45e8ada057718b33 test/results/test00-armv7l-binary +25b38a3f5ad81ed4618a3d60fe00e0eb1bf88366f4eb031c02a9f880440ae207 test/results/test00-armv7l-binary 9b12e9ba86d56bf6e6f5a7e8513b244399755198d8028cbef4132ad0cf7336c1 test/results/test00-knight-native-binary 64879eebceb475f21e54cb1f2e872996ca80e8c1fbb8b5895fb5fb6bac0c4384 test/results/test00-knight-posix-binary c52562bd0aabb86ce8ca177f22f8d0455769b444df2d4d62894faab63b7151d8 test/results/test00-x86-binary 2c968b3736b6f2828982bad905018bfc4f159d7871e825f86a8f50b55b90b143 test/results/test01-amd64-binary -579acd2d038e842bfe3ac56af2ad096d91a94c5a0f3d844b1dcc8ef380707eb7 test/results/test01-armv7l-binary +c04bda3cf219832b37e945e416fff106b927703a23af0da2bbfa07fc812a0d92 test/results/test01-armv7l-binary eab60d537e8418af8b64af4b1d1a5711085fb8f668403ce93de4393584e0edea test/results/test01-knight-native-binary 486ee05ccea796a9cfa9bfb23189b8e014b7ce8d14fea03b27d679d410fe17dd test/results/test01-knight-posix-binary eae96857f2b6d8e8ba86ac06e72345ea572622b358b23978bb5f2db1baadf41c test/results/test01-x86-binary c742a827684287cb82b4a3526eb996eda941bf284e11aab431816a3ef1e0804c test/results/test02-amd64-binary -63a79206ff41068e8cc585e535717a4f6a80506137891ee3905daf473bfc6420 test/results/test02-armv7l-binary +ef25f00027ebb22cccb9a321e6c89c380090e365c6ad691617378a1d89009d89 test/results/test02-armv7l-binary bbcc2a7a785a29bcd36d26242afbc907d449346bce6e21634837d1f2ce31b7f9 test/results/test02-knight-native-binary e6493845b9e94a617649638252f23502f9212de583fd00cba6cc07fffd296e32 test/results/test02-knight-posix-binary 8ead336d2f3f72d5874230492e0472edec61d355905e8636e3dfb2731695037c test/results/test02-x86-binary c611b3cab0a736e7176dac21aa04555039b28362d0cfd3a5c56cf29ca3e48616 test/results/test03-amd64-binary -58e95f5eb581d8202c941809d8b162da1ffeda714af7d36699f330dc5c276880 test/results/test03-armv7l-binary +a80264844e0d16e53c0853a5a59452343fd9504408f37ae02f7063bbd15f0220 test/results/test03-armv7l-binary 18b906ce8866aea1e8464dbeb6eb118b28cfeb272896b20d1de1d7d69980a69c test/results/test03-knight-native-binary 96849d5a9294799a9648c24db21b2dab1555dd5ba69d172d77df800622347226 test/results/test03-knight-posix-binary 2313cb3f1a2b9eb6bf15f8d43418e15d6c16f7f1b5c22700fdfc2b38beb59192 test/results/test03-x86-binary b773d7ec7c550b71997ce451af7e1ee59fe6597b32adc455b271b7d173d5eae9 test/results/test04-amd64-binary -69997b16f41de2ace669e6e331efbae4ad8da3483262476d7a490a450fe082ad test/results/test04-armv7l-binary +fc9de9b27e154643e221f9d8281956809db5ee9f85a56d990f8a7de66d47f10a test/results/test04-armv7l-binary 9ce8ab26d1db3aad3d449d33dd012e1875acc2e8138911d24adda1a667db8deb test/results/test04-knight-native-binary df9ba08dfa69ac6cbb4483146dbbe079ef575d7de8318e2e52283151ebf24bd3 test/results/test04-knight-posix-binary b7ddb37063c541c6a315809c4438aa235d6702f54bb64f4ffc88dbe78617de81 test/results/test04-x86-binary c4e5e2ffc3a2c3d4116589fa1369d45e5af91cc69b5d342ef5552dfca992c64b test/results/test05-amd64-binary -f84660128cf57c135f5f163b3558527abd962e202bcc588abd13230862a287e1 test/results/test05-armv7l-binary -0922872b8bf9baf032a378dcc2aa4aecf45ce94dcbf476ef443f145106888293 test/results/test05-knight-native-binary -5db3a2fbd84150dae41e1c778f2822d053a0539cbdf59bba56e5514222f46674 test/results/test05-knight-posix-binary +748f6b9825bf9b72908dfee1ea674eaf1c3c63b0100a3e3195efefabe5048280 test/results/test05-armv7l-binary +52cbce457515d0d2af4c2a446c827e8513d183260d16b8919cbcafe0e1b567f6 test/results/test05-knight-native-binary +290a68de66c3a83ef5bd75aa1d3b9057d0d6740b310072d11f9daacb184e9100 test/results/test05-knight-posix-binary 90321c43b2384050e5f03e5af67d345b55dd8a43e96d1f3b7f29d3c5dae3f077 test/results/test05-x86-binary 98fab6d12630465d4e3cb72102b541c818e75b034e1ca1823c26ad6dabc4a910 test/results/test06-amd64-binary -e09cccfc8f46004f12a28cfca4f07835a895dfc5567e12759d19b57d63e1baaa test/results/test06-armv7l-binary +bb913bdbfb77b855d416a6051e0d5646275fe6eed7a89cf3373be14d83bef1c5 test/results/test06-armv7l-binary 6f1f99bdcde87e3674a4defd03f094b762a089c771ae91c33c401a0480091bff test/results/test06-knight-native-binary b177d769ae44c3509d9a08d0ee631ec69654dc5d723408bf0decdc67c42aae27 test/results/test06-knight-posix-binary 663fc6eefe965f237b6bf5a211398c8ae1210f97ff39b59603677e92462c68c7 test/results/test06-x86-binary 58af02adcf5a1bfa21dae4992ed3fe0a1f708c67bb5bf1f842a51b3b8eeddf05 test/results/test07-amd64-binary -512e3d774b1d96808f046c01a6b08e818945056939515668530a2e17ea0ea6db test/results/test07-armv7l-binary +5ce09fce0c670056284cf18586151060dc56e2b3b87c816939b66d351e70ccf6 test/results/test07-armv7l-binary d47fc54b2d577857ab15b3a571e7138fd60e80471066df524cff5313fd31b712 test/results/test07-knight-native-binary 9159c4ba8196b24ec78bc9ebfbc7066d510ddbf03461736e7795a48634134dc5 test/results/test07-knight-posix-binary a9a3e332d13ded5f80d7431f8717f26527b3722b33ea57760a9a5723dffc099c test/results/test07-x86-binary 3a9a7815ad19bbdd9ea6921ecae8521089df27ac08bc207df11a2a0080f5acbb test/results/test08-amd64-binary -8537995c4da57dae51a19f0845f4a57c682e67a9e7101352d5980ff06a5b2847 test/results/test08-armv7l-binary +28b9834ef90a721c6cba5ca818547d607d0e1a63c60ddd684b6aff885cd21fc2 test/results/test08-armv7l-binary 3a1de0143bfe2302ab0f7da189a0a14c285efebf7c16d7ea0177751c9e3b2175 test/results/test08-knight-native-binary b824859fd0e39f1417742a1b9a1cec18ade78afdd80ce2c64cb54cdf7683f53a test/results/test08-knight-posix-binary 3a099298d2235ad00518bb6e2f2f9e25d429c4fe576dfc9cf083e3e0053bdcc2 test/results/test08-x86-binary b1251d03f35474f9c5cec84d067d97295a47ae34dbd9f12e72a3630127cc1e07 test/results/test09-amd64-binary -81cae9bfb57c727bcb16b59d81d9d588e84350b75a20170afa06e3d269029b87 test/results/test09-armv7l-binary -b40d198af6c31f1af513ec70c6be9c6daa43cccf48a7191f4d984f81cdfbf623 test/results/test09-knight-native-binary -0feaacc13ad24c2b513fd9d46a58c38b1af57e77275c9a148cafb4a0d3cc7b7a test/results/test09-knight-posix-binary +4fd3351f92149ccfb103a2d09a28a90939fb828d56f14c1b39fa4507c32a8f1a test/results/test09-armv7l-binary +28f5f848ac0efdb9d5cdbfd3d5cfc750bc78e28fd8551507b6a047e28f4ee08a test/results/test09-knight-native-binary +990e82bccca98e6393f72b659abc2eb6069f272202286ce2ca51e9d8a941f3cd test/results/test09-knight-posix-binary 9e4a0a6216bb4fde5dcefac91fd7c623e9e00b3e762946e5a47a1b50b4656103 test/results/test09-x86-binary a9cf4422e05075395ad75bbfe4b2659aec4541edd46d8c6b5064d3496b06a0b6 test/results/test10-amd64-binary -5df859c88e9cbb2758f823e020d9993d50ba81fae20d469c03ec2b196d55f580 test/results/test10-armv7l-binary +a0ae067746e7a2b01d33950da1cf640e12c3a70a045ab331ea2025af59dec9af test/results/test10-armv7l-binary 1154f39f25dcd6d914e9a542306f95280926baf985d011b2152c7ea0b87ab42d test/results/test10-knight-native-binary c1b5a2a3cd46c5e95e5540e871c2a916e028684ca80f51c001ef489342e27625 test/results/test10-knight-posix-binary b3e13d54aab689137628fb9c4487bfd8288f9bd18bef8fe756577c8d2dce1f1f test/results/test10-x86-binary -4d41cd9cc1ac08bda0372a1e7be17965b7a6f3bc77f87ca024bc4cc7948aedf5 test/results/test100-amd64-binary -a157f35aa2acf791464b242fe36f69816e1b91dd5559bca6a5bab1ad8ddcfbac test/results/test100-armv7l-binary -1ce45071c156ce9f012b9cc8b179205c3948405b252c29db1f036c097f22947f test/results/test100-knight-posix-binary -5e9e50ee0ca2c0cd290c4c764dfd1329baa563e078247b93754500543cb24c2e test/results/test100-x86-binary +180fa840792e12a740bf1e1b11232f029497821ad3619bd0cf11c77d5b2b02fd test/results/test100-amd64-binary +58b48b1a10cf055e5ba14625c1ad268793bb0ec4947a45f37f1474c6dabcfbf5 test/results/test100-armv7l-binary +489d568eaf12223e9ea855e1ed207adeb336b92a1b20f5c67e1d49f60f3a7bb4 test/results/test100-knight-posix-binary +9e0ab712093f097497720c05aa6c08690ed9651ba97e70e9446af284020eeb99 test/results/test100-x86-binary 34e6d535e30ef8826a4ad1a4d08b76cfa370c54595599ad3be784b64c9cd8ec5 test/results/test11-amd64-binary -d9d465340abbce2d5964a6bc58e6cdd0ef93fb3d0199eaa823c86ec6abd0452a test/results/test11-armv7l-binary +893695e6f300a0fe055fad935a56abd549bba70d1d39c535a680f41bbb73f117 test/results/test11-armv7l-binary 955b564d2c89abf2cfc6c80d766cd11479d146b828dec69e654b0958a62d5e6e test/results/test11-knight-native-binary 63fd5fbf389d1b19031026df193ec55e98d923b8568007125b80bc246c094496 test/results/test11-knight-posix-binary 3fd11bad4a426ce1ff8fd9c6d7d2b943effae9f3f5740b7376e426e9b0555851 test/results/test11-x86-binary dc88f6de5ae892774760843079eab57306bf0f6f683d4999bdec0d43e4e762b2 test/results/test12-amd64-binary -fa46dd13a783d7531394603946c9e8784a9a9890b7e6cbfdd1f0b3dfb529017b test/results/test12-armv7l-binary +08b9c0110bd2fa0a6653b3064ad194e7dc2f333f57068845a0abab7f5a13499f test/results/test12-armv7l-binary 21848cdee9c6f063c295680ae48f7a7677fe783f4892ece00c7504e8441b4c5b test/results/test12-knight-native-binary 313536f9209d29d4c3b40f6ada898f81c1fb3b650ca1a84754f90b1db3b9e001 test/results/test12-knight-posix-binary f98ab8e4bb35580e0dde96126d7a56aff66bda208d02c8d89390b40d6cff591c test/results/test12-x86-binary 5095e23b0d6680de3e28c1898b66c352761522f42313acb96f6f39bf0707f4bb test/results/test13-amd64-binary -8717f4034922836e75c9924edd48f9890a900cdadd322b2fd5949f64544d68c1 test/results/test13-armv7l-binary +b72e3ad2a245af1ea94de50faec05d56dfe031e75dff4cdde75e1c92c3d617a6 test/results/test13-armv7l-binary 9d8c4ee9d5c8cad031880f1e15dcb419108e7cb2933c30622afabb8335c85641 test/results/test13-knight-native-binary e50c97ba330823cb5cbe938bb9d1575340b083e60fc42db8edefcfd95851daa2 test/results/test13-knight-posix-binary 5051ffca2615144419f8ec1a5d4999486ae81e7781428f59e47e866af97cef92 test/results/test13-x86-binary bcc5f70b76fd7ff1a8ccbc1d13e41044b3a6f2b7158194fc0a669b0ba07d0969 test/results/test14-amd64-binary -c447dc62f437bdb045cb260d5965551e805de7ad4c09cc006229543cc9824530 test/results/test14-armv7l-binary -156fa1e6b5814da94a542dfe742f77e155d52724b34f75f3513b9e8f6f2503dd test/results/test14-knight-posix-binary +2df8a834bfabc03f04214bc330870c075367f32dd40a31e9028927dafac1f091 test/results/test14-armv7l-binary +38c83f8d176c3cd70fcb82658b7376487402f550b2e32181dfcd5b942ae949a0 test/results/test14-knight-posix-binary a8218958b628066e2fda63d3933f1bf607c358d7bdfe84fc02596393698ea5f6 test/results/test14-x86-binary 0526b33e314a881746bb108d0ec68a3f11b96d1b92b287816235f825210bff2a test/results/test15-amd64-binary -6bd3ca5cefa19ed620def60bee5eb7fe7d0e11198aa6a4592b5de27cd5401d12 test/results/test15-armv7l-binary +58d7d1ac0470fbbb7681cea0f377c22d54a9453dcc86d68e2f93fdb7e4f960cf test/results/test15-armv7l-binary 9f7c81e278248a3160d80a3f5ca0c39a5505ca9b45adc002e9b527db3e5f084a test/results/test15-knight-posix-binary f24c62fb54b9ab510ce1b3a36d119e3b5d2ed56e33564c83782d828eac6a6773 test/results/test15-x86-binary d8dbd22939091d04ccc969d848b4e4e2a6b5c9a8c91779923830fd6aa1a0f779 test/results/test16-amd64-binary -5314508cb2146dc95748e5c0c0fbab48986da7dd42a2603f46006b20045c73b5 test/results/test16-armv7l-binary +cc0213dd7b1c368c1245c30a5c7fb520f8e1beded3acf136c48f2a015f29df0b test/results/test16-armv7l-binary 84f5472ce5711b9cad28fcd4c177eea673047c2561ea010ccb6bf5f50d89c713 test/results/test16-knight-posix-binary aeb94a4142633f20d7be4f8e74f0d5edc9050afb76f49cb504a1c264bf1ef96b test/results/test16-x86-binary edbb413c0a1e97e57c08192190c37345759e05356394d1c9f43b2eb205b65769 test/results/test17-amd64-binary -aae309ad68840fbc1685412c4fe42bb54bb9caf20a92b3251cfa4749c8698a0b test/results/test17-armv7l-binary -537f6885bf76a95ad322b4dc416d7de0bb73b5bbfc3bc2a9ea096e240b4081b8 test/results/test17-knight-native-binary -0323ae8fa9e79cae9a58eec89a80b2c354db276d76c6f50b3bf50840327d4950 test/results/test17-knight-posix-binary +8d5cba902233400423508c52998464933ef235c7b1af16fdabf84b12d0108f27 test/results/test17-armv7l-binary +25c03ca09cee551b898245f91106e78a551ddb09e55dc5d36138e7f3955be47d test/results/test17-knight-native-binary +fae9fbfc8a37c06dbc363b7bcb48eae27fbebc8a6abf715fd7617b01a1699866 test/results/test17-knight-posix-binary 56a83f34aa57b10efdea636135491043d8c8b09dc09b451b58c27801ca82990e test/results/test17-x86-binary -f63d60a919ff5f5b25fc0e925f104fe0039d537bc0e9aaaf1f187f80741a0083 test/results/test18-amd64-binary -122d78f9943f3678a07a9ec82b491e041664b31931ac5056c8a238eb0753e879 test/results/test18-armv7l-binary -4da569a63039551da7dc2f8fd1505d7c1661ec1765aae301071ac0c24c2064c3 test/results/test18-knight-native-binary -d0f0b1428c8db70806d6e2e5b81aca4b6752c4a581a3fa83da064317ceb605b0 test/results/test18-knight-posix-binary -8e3f5e2dfacf07aa3ab4376e9db2649cd51b53ed68e0e9789fbcaaac1277ad64 test/results/test18-x86-binary -85112e5009d06e4ee68405d5272bcc7608b0202dca1f6fdfabdb6a9d230625e3 test/results/test19-amd64-binary -4e3f590623e2baae4c42e68b6f8f35d9731e4d5a64bbe5112780b8382225f916 test/results/test19-armv7l-binary -32ba6ae74a8756fe4b95c65a643513bdd785778f98a878b3ea5459b5aaccaa38 test/results/test19-knight-posix-binary -07d8975a384003b5726e1e3c517fba25f55d9c19e4122273303743c94a18bd70 test/results/test19-x86-binary +e36ffaadf9d8e76a68af67429a60fded7bdfc13ba6b5e2fea5a1f6cf74b3d8ba test/results/test18-amd64-binary +a72e9d90e28aa70ba0877a89f224a8469e066958e76c3eec1abcf3b63275ba55 test/results/test18-armv7l-binary +6aed160d00be97a25b0784a295fac4f5cd982b5f11db88a0a9ccfd8fcb648336 test/results/test18-knight-native-binary +a349ede620824075e13967da7fd820fb6c470983797c1623658d9c7412411923 test/results/test18-knight-posix-binary +56f791e86536757d48990b870590c878c825f718c29af9628c02e73bfd6144ff test/results/test18-x86-binary +4db54ed2817771a68c68201cec3ba099dcab2485324fe6e0fba9ab69f461487c test/results/test19-amd64-binary +1960ba445f1196db351d957ffc7848b7457c0cc377331d072797bd25dcc5fe11 test/results/test19-armv7l-binary +6ce1194d10113b7e43f60d31221852c7742b8e19a0ce14f75a0005907266d128 test/results/test19-knight-posix-binary +29902ee95385060d61eee2a6474375c95f156ada2ece6b6cce763e89ef1d4bde test/results/test19-x86-binary 15950e38bab2603bfcb369b9a4941abfc2e37b7cbbd2cf9b22ebfc9aab46d5ad test/results/test20-amd64-binary -ef9d0050388ab15454b437bc40c19737cda9211cb3704a0b2619fae232239d7f test/results/test20-armv7l-binary +80612ce05a2e43fceb34139577be98794505cd324ff5bc84ba004a21828b5f86 test/results/test20-armv7l-binary 7ae1ba10ff6b6bf34148945ee44b9461aa6d1a16094e77fdf34b76e9a360a5b2 test/results/test20-knight-native-binary 6a59795dbb4397d0efaf1ad613d646ec435eec62db30eb758bcf2499d651520e test/results/test20-knight-posix-binary 0d1a43723d0482a21028164e33ff116d66302d6042a88eacf08436a351494530 test/results/test20-x86-binary b80de35e17d341cda9cd280437acb6b217841e18a5b01faf86ca461f6bf0d246 test/results/test21-amd64-binary -737b2262e54035b5cac20fc43013956a0c4fd144c6b40ffc546ee05a6133922f test/results/test21-armv7l-binary -3c096914ca492c60bd53193fcc109549fae170052b347e3e62dabcbd9784691f test/results/test21-knight-posix-binary +23ad3fc1acc3741e32964e6ebcc206716a6d8ba9fabf4ffa872a382621b7b2a9 test/results/test21-armv7l-binary +3247980035c27673a914a6568fdc4075fe721bf1e1006a19886d1ece529187cb test/results/test21-knight-posix-binary f5d6430d6fade0d4acdaeda1662d9bfdeff881a75e2c877dc738f3485ddb4e63 test/results/test21-x86-binary -120d142803805af2342d9b8db6f2f70b7a7b81fd4890d5fef43b46db1832602e test/results/test22-amd64-binary -883b112bca57ddab502af939327765508fa37ea3a588c37094d3798b2267171b test/results/test22-armv7l-binary -7ccc16255ce81a9b35934649b5446face10db899cadaf00008c582934eefaa37 test/results/test22-knight-posix-binary -f30be64f9bbebb5c1bfa16f584754106de5d95d48b6882b4458beb5e72b2c473 test/results/test22-x86-binary -7d4a07733fa071d52494f936b313a08581e4fe9d7dd94e16c77552a71a22068a test/results/test23-amd64-binary -df39200be9f9f560eb51dfaf262bbf98f98774db7b1165bcdd4c49540e91587e test/results/test23-armv7l-binary -a097d5e213b7fa9441d782056d28a0855f7b98108e988f9b1d4ede0418ae63ff test/results/test23-knight-posix-binary -777074010248bf3910ef2c4630e59c2c5f34d9d23ad83c3daf00b0b5517a2e6b test/results/test23-x86-binary +4550dfa5655df859b9f61cde276ab7846e6f30321d83bbdf4a734ac22f513dac test/results/test22-amd64-binary +8a2dbf66b8c89c4be1bb3b03ffe2e5a6a3a3b0a0991e88d381f672b13d159e9d test/results/test22-armv7l-binary +308cbf387fd7c78c180e456683295ef85a69675678299114ebe6a9eb1c37fc82 test/results/test22-knight-posix-binary +c2b54fabc592104ab0b26389191f47ba29ea0d4fc216e8fb28b314582134f532 test/results/test22-x86-binary +1ad56685d5d70c73f08234cc23458eb8181cc6a8c156b3230188c4622ffa0a2d test/results/test23-amd64-binary +8dfe0e371dec2a71448b1034b30534b6fcf8b08efa87fb0700718577173f7988 test/results/test23-armv7l-binary +304a07a1de7332e43f0ee8c0ff8104dee6906e32b18cd7d3088dcdc187456b40 test/results/test23-knight-posix-binary +b3b6ec4e0c27d0f763dbf81401d829cdb110f048f18ba461081739d533d778e3 test/results/test23-x86-binary 44d06216e0bf9c2f8dfcb6684f6f6c0c0276f73c78c36a96454be84c8dc066af test/results/test24-amd64-binary -1deae7d8b3ed2373afb1dba21d192ce642d17b47483c9ec72f3081089ac46725 test/results/test24-armv7l-binary -a1053415b79f08f8bcc9ebda8c9b096ed4e66c483504ba3d7d4dbebad2e3fabf test/results/test24-knight-posix-binary +2c78c4dd802d801109f4deaa760bc8fa2331d035c36caf22b9cd74a060532167 test/results/test24-armv7l-binary +8502002b30ac65df6444119d065a514cb0f51894a32f695ce4bc470b3f108bb9 test/results/test24-knight-posix-binary adb392ddd4f3daab1a9afc1eb0bf00cb388a6c45db7754f8455f39757e7f62f6 test/results/test24-x86-binary -9e8fe8dd8d1f3fa34e6b1b114de79375893e44d6a4d17f058df6578f118f6457 test/results/test25-amd64-binary -ef17edf7febc6da5f1cda6b8c367010ff9fd446df8edcfdaf9570ab4fcc63a7c test/results/test25-armv7l-binary -d8aa81fce8064db6697376b140cbf6aeeb91ff6728d1a80173c431bcb0526168 test/results/test25-x86-binary -349a6a529151cc2ca4f0acbf7753b5653977abdb7dec676f29f3a63c608fad2c test/results/test26-amd64-binary -70480a64dc02b0ef9275c1d69ca61712cc0c649f57dd63a019cb2359dc24f07b test/results/test26-armv7l-binary -63d55e89c7c5bd06f9bf2af2408277587ada25e2836a060438256dbdc6b894b5 test/results/test26-x86-binary +aa87c4e6fd6964bfbb4e0b221f1e1fb654c1eb35492b1a30cd4a2d05a1dc640b test/results/test25-amd64-binary +32413f9e44359d121301b36dcda32890ba49cd67e4e9caefe98f8117be4ce224 test/results/test25-armv7l-binary +82c956e3a040d34f6328bd5f22d53c02696500806a6a27b41c8f654143827c5c test/results/test25-x86-binary +866607b7596cc0f56669ee37e83e0a9ecbdd20fdb7fc5fac54ca27fd3c67b54e test/results/test26-amd64-binary +6b59f96ccead5c9541a9c3e4be5ec154e96914c548662a1ace5b0d68ef16c215 test/results/test26-armv7l-binary +5e49db8b34f658113a06f38e26691bc78ef27ba11698d407cf304ab3c2342f5b test/results/test26-x86-binary 717c42e1a1a91ef5b67ce298bc92a148418a5dec6761a358a52b22a01f16c928 test/results/test99-amd64-binary -4cd7628090622b165d2c2d1d4c089476a6d661d494e2fadb1ad9b0906585cd75 test/results/test99-armv7l-binary -eaca2f7f70b75b7503ee040bebd0dc0fa961a25597622356f70faadec759d696 test/results/test99-knight-native-binary -bea554c06c8ecdb9eaae2c586a2006487968625b9570cbe305f69959c0e680e7 test/results/test99-knight-posix-binary +4e759b212b087824f7b0f14c5147272c9984c4a4d00074b2fd771c3d004c9aec test/results/test99-armv7l-binary +dcc61bc8c785d59b2bdf61c97eb6fac877410cde5b8d46e53907ad569020b004 test/results/test99-knight-native-binary +13c270bacaee1748dad55532fc0adfa713904ba1cafbd69f77a9d361bdc4acd7 test/results/test99-knight-posix-binary e970ab9e2e85cd01c0f9c14f0af1954e3628a44c988ca8175a983037457522f9 test/results/test99-x86-binary diff --git a/test/test100/proof.answer b/test/test100/proof.answer index 93bc1b0..c9c52fd 100644 --- a/test/test100/proof.answer +++ b/test/test100/proof.answer @@ -1 +1 @@ -857519b111433c1cc3fd2f9fa60e86222e4227e9fce1601d08ceec6dfd7160e9 test/test100/proof +cf0f406a505877ed518fdbc27bfd9588f5de92bb58df619c81c242b1338ff4e6 test/test100/proof diff --git a/test/test23/proof.answer b/test/test23/proof.answer index e52f115..29cbc4b 100644 --- a/test/test23/proof.answer +++ b/test/test23/proof.answer @@ -1 +1 @@ -d07a55deb116430d25b4f5f3f59f91d2cb8ecb4702c764992ce23c96fd49230d test/test23/proof +8366eb936969cd373685024cb43c0ca6e6893385d2e7dda725df4ca353d81226 test/test23/proof