aarch64: arithmetic, relational and bitwise expressions

This commit is contained in:
deesix 2020-02-01 21:23:49 +01:00
parent 39936d81cb
commit c32cb92daa
3 changed files with 32 additions and 5 deletions

View File

@ -840,6 +840,16 @@ void 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);
}
else if(AARCH64 == Architecture)
{
general_recursion(postfix_expr, "ADD_X0_X1_X0\n", "+", additive_expr_stub);
general_recursion(postfix_expr, "SUB_X0_X1_X0\n", "-", additive_expr_stub);
general_recursion(postfix_expr, "MUL_X0_X1_X0\n", "*", additive_expr_stub);
arithmetic_recursion(postfix_expr, "SDIV_X0_X1_X0\n", "UDIV_X0_X1_X0\n", "/", additive_expr_stub);
arithmetic_recursion(postfix_expr, "SDIV_X2_X1_X0\nMSUB_X0_X0_X2_X1\n", "UDIV_X2_X1_X0\nMSUB_X0_X0_X2_X1\n", "%", additive_expr_stub);
general_recursion(postfix_expr, "LSHIFT_X0_X1_X0\n", "<<", additive_expr_stub);
general_recursion(postfix_expr, "RSHIFT_X0_X1_X0\n", ">>", additive_expr_stub);
}
}
@ -897,6 +907,15 @@ void relational_expr_stub()
general_recursion(additive_expr, "'0' R0 CMP R1 AUX_ALWAYS\n!0 R0 LOADI8_ALWAYS\n!1 R0 LOADI8_EQUAL\n", "==", relational_expr_stub);
general_recursion(additive_expr, "'0' R0 CMP R1 AUX_ALWAYS\n!0 R0 LOADI8_ALWAYS\n!1 R0 LOADI8_NE\n", "!=", relational_expr_stub);
}
else if(AARCH64 == Architecture)
{
general_recursion(additive_expr, "CMP_X1_X0\nSET_X0_TO_1\nSKIP_INST_LT\nSET_X0_TO_0\n", "<", relational_expr_stub);
general_recursion(additive_expr, "CMP_X1_X0\nSET_X0_TO_1\nSKIP_INST_LE\nSET_X0_TO_0\n", "<=", relational_expr_stub);
general_recursion(additive_expr, "CMP_X1_X0\nSET_X0_TO_1\nSKIP_INST_GE\nSET_X0_TO_0\n", ">=", relational_expr_stub);
general_recursion(additive_expr, "CMP_X1_X0\nSET_X0_TO_1\nSKIP_INST_GT\nSET_X0_TO_0\n", ">", relational_expr_stub);
general_recursion(additive_expr, "CMP_X1_X0\nSET_X0_TO_1\nSKIP_INST_EQ\nSET_X0_TO_0\n", "==", relational_expr_stub);
general_recursion(additive_expr, "CMP_X1_X0\nSET_X0_TO_1\nSKIP_INST_NE\nSET_X0_TO_0\n", "!=", relational_expr_stub);
}
}
void relational_expr()
@ -948,6 +967,14 @@ void bitwise_expr_stub()
general_recursion(relational_expr, "NO_SHIFT R0 R0 OR R1 AUX_ALWAYS\n", "||", bitwise_expr_stub);
general_recursion(relational_expr, "'0' R0 R0 XOR R1 ARITH2_ALWAYS\n", "^", bitwise_expr_stub);
}
else if(AARCH64 == Architecture)
{
general_recursion(relational_expr, "AND_X0_X1_X0\n", "&", bitwise_expr_stub);
general_recursion(relational_expr, "AND_X0_X1_X0\n", "&&", bitwise_expr_stub);
general_recursion(relational_expr, "OR_X0_X1_X0\n", "|", bitwise_expr_stub);
general_recursion(relational_expr, "OR_X0_X1_X0\n", "||", bitwise_expr_stub);
general_recursion(relational_expr, "XOR_X0_X1_X0\n", "^", bitwise_expr_stub);
}
}

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
5cc5c8b56b02f9e2942152e7f06c47fda8ca787217a8276de8c59fa91db763d0 test/results/test100-amd64-binary
82ec5d9255f325c30549ef21c9f8d6a14d8055805051dfbc0aceb6edbec5d3a9 test/results/test100-armv7l-binary
e8c1e8d431338e58f84909e3cd80ee0509df7e0ce0d6a7623211538f494ba928 test/results/test100-knight-posix-binary
87e3a0cb7bcd7e1031ea6f56a337fd0043a40bd707ea1d822f00d2383a3c49c6 test/results/test100-x86-binary
ec1170fc87bc5868b610f1372abb947fb5ced0b2e395f60d7ea74d93cd68ccff test/results/test100-amd64-binary
0d0bb58eae4948a5ccd8868a73acf3ca6c12c8bc06c593f6987c64d2362b69b1 test/results/test100-armv7l-binary
489c49ef258a4130322c1c96cd2826debdedf96c2aa088d5459333daf6f07728 test/results/test100-knight-posix-binary
76f799c044919eeed4c99bb7201c3dc984580f4e8e37cd57205faaf420ac3246 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 @@
449988fc1b8927d959e7ace25aa1420c44e4b44418fe1805ece868cd8ecb2aa4 test/test100/proof
0e0e8857d3f5a9e964d28497d5746af99dbe6dfc66e60d66058b0c83a6b6e2fc test/test100/proof