aarch64: statement

This commit is contained in:
deesix 2020-02-01 21:23:49 +01:00
parent 803cf4ffa3
commit fbc2bf3333
3 changed files with 10 additions and 6 deletions

View File

@ -1498,7 +1498,8 @@ void recursive_statement()
if(((X86 == Architecture) && !match("RETURN\n", output_list->s)) ||
((AMD64 == Architecture) && !match("RETURN\n", output_list->s)) ||
(((KNIGHT_POSIX == Architecture) || (KNIGHT_NATIVE == Architecture)) && !match("RET R15\n", output_list->s)) ||
((ARMV7L == Architecture) && !match("'1' LR RETURN\n", output_list->s)))
((ARMV7L == Architecture) && !match("'1' LR RETURN\n", output_list->s)) ||
((AARCH64 == Architecture) && !match("RETURN\n", output_list->s)))
{
struct token_list* i;
for(i = function->locals; frame != i; i = i->next)
@ -1507,6 +1508,7 @@ void recursive_statement()
else if(X86 == Architecture) emit_out( "POP_ebx\t# _recursive_statement_locals\n");
else if(AMD64 == Architecture) emit_out("POP_RBX\t# _recursive_statement_locals\n");
else if(ARMV7L == Architecture) emit_out("{R1} POP_ALWAYS\t# _recursive_statement_locals\n");
else if(AARCH64 == Architecture) emit_out("POP_X1\t# _recursive_statement_locals\n");
}
}
function->locals = frame;
@ -1576,8 +1578,10 @@ void statement()
else if(X86 == Architecture) emit_out("JUMP %");
else if(AMD64 == Architecture) emit_out("JUMP %");
else if(ARMV7L == Architecture) emit_out("^~");
else if(AARCH64 == Architecture) emit_out("LOAD_W16_AHEAD\nSKIP_32_DATA\n&");
emit_out(global_token->s);
if(ARMV7L == Architecture) emit_out(" JUMP_ALWAYS");
else if(AARCH64 == Architecture) emit_out("\nBR_X16");
emit_out("\n");
global_token = global_token->next;
require_match("ERROR in statement\nMissing ;\n", ";");

View File

@ -53,10 +53,10 @@ a0ae067746e7a2b01d33950da1cf640e12c3a70a045ab331ea2025af59dec9af test/results/t
e01b615db5df31392bd1054c45141dcff936b11dfb1cad270edc0aa67653f5a1 test/results/test10-knight-native-binary
c1b5a2a3cd46c5e95e5540e871c2a916e028684ca80f51c001ef489342e27625 test/results/test10-knight-posix-binary
b3e13d54aab689137628fb9c4487bfd8288f9bd18bef8fe756577c8d2dce1f1f test/results/test10-x86-binary
2f7f18f92107bb81a49f307945396e891d8b1de6bf33a8dfdd80f9654938194d test/results/test100-amd64-binary
d351523cf26d8fc66ceefb1de1640208ec4e5f2453e519ef7f6cfc40944108fb test/results/test100-armv7l-binary
e89d2dc96af7e893706494c7f28f00b775e3ecc11616738f382e5e7e817c9073 test/results/test100-knight-posix-binary
0e7c8948a5d87e3ebfd5015c6baf97aac9832e32b5c3e0664d6b8b9753ce06b7 test/results/test100-x86-binary
4986b1dd5917c2b8e1d43db0046e1156bcc2bd5e61bf09295c21129b548bb2dc test/results/test100-amd64-binary
546fa052705af729d91243b01200619749e94a2b89dfd132845ec5e8363baacc test/results/test100-armv7l-binary
2ab893986a397fcbc07738d3ec2ae40d042cac288c6d840a6ab53148a3dd8442 test/results/test100-knight-posix-binary
e3e5cf90f6b6bc27e027514ed221e4851a98963dfe5a642227843827aaf8ce93 test/results/test100-x86-binary
34e6d535e30ef8826a4ad1a4d08b76cfa370c54595599ad3be784b64c9cd8ec5 test/results/test11-amd64-binary
893695e6f300a0fe055fad935a56abd549bba70d1d39c535a680f41bbb73f117 test/results/test11-armv7l-binary
7115c4a552eb4b2c1a868ac3dca43be7d040c8e89b7b66851d0522d298429af9 test/results/test11-knight-native-binary

View File

@ -1 +1 @@
31ffe9a685d2023ea786914efd498906f51a7fd7a494fb8c7424a90ec39e9b08 test/test100/proof
a361526e45b08ebd44af98b9478a9d2ad9c478289e9c4233f402a319dcbad907 test/test100/proof