AArch64: Fix quick compiler monitor implementation.
Also with some small fixes :
1. Enable some dex byte code to compile.
2. Copy the register definition from runtime.cc.
3. A quick fix for "cmp Wn, Wm" in the assembler.
4. Optimise GenMoveException a bit by using xzr.
5. Fix improper use of StoreValueWide() on 32-bit value in FlushIns().
6. Fix one debug assert in the assembler.
It can pass all cases in run-all-test, except 044 which also fails with
the interpreter.
Change-Id: I9cc0253f1039c78d5100640235ac33e884b02560
diff --git a/compiler/dex/frontend.cc b/compiler/dex/frontend.cc
index 144594e..3bc060b 100644
--- a/compiler/dex/frontend.cc
+++ b/compiler/dex/frontend.cc
@@ -147,8 +147,8 @@
// Instruction::MOVE_RESULT,
// Instruction::MOVE_RESULT_WIDE,
// Instruction::MOVE_RESULT_OBJECT,
- // Instruction::MOVE_EXCEPTION,
- // Instruction::RETURN_VOID,
+ Instruction::MOVE_EXCEPTION,
+ Instruction::RETURN_VOID,
// Instruction::RETURN,
// Instruction::RETURN_WIDE,
// Instruction::RETURN_OBJECT,
@@ -163,8 +163,8 @@
// Instruction::CONST_STRING,
// Instruction::CONST_STRING_JUMBO,
// Instruction::CONST_CLASS,
- // Instruction::MONITOR_ENTER,
- // Instruction::MONITOR_EXIT,
+ Instruction::MONITOR_ENTER,
+ Instruction::MONITOR_EXIT,
// Instruction::CHECK_CAST,
// Instruction::INSTANCE_OF,
// Instruction::ARRAY_LENGTH,
@@ -173,7 +173,7 @@
// Instruction::FILLED_NEW_ARRAY,
// Instruction::FILLED_NEW_ARRAY_RANGE,
// Instruction::FILL_ARRAY_DATA,
- // Instruction::THROW,
+ Instruction::THROW,
// Instruction::GOTO,
// Instruction::GOTO_16,
// Instruction::GOTO_32,
@@ -230,14 +230,14 @@
// Instruction::IPUT_BYTE,
// Instruction::IPUT_CHAR,
// Instruction::IPUT_SHORT,
- // Instruction::SGET,
+ Instruction::SGET,
// Instruction::SGET_WIDE,
- // Instruction::SGET_OBJECT,
+ Instruction::SGET_OBJECT,
// Instruction::SGET_BOOLEAN,
// Instruction::SGET_BYTE,
// Instruction::SGET_CHAR,
// Instruction::SGET_SHORT,
- // Instruction::SPUT,
+ Instruction::SPUT,
// Instruction::SPUT_WIDE,
// Instruction::SPUT_OBJECT,
// Instruction::SPUT_BOOLEAN,
@@ -350,7 +350,7 @@
// Instruction::AND_INT_LIT16,
// Instruction::OR_INT_LIT16,
// Instruction::XOR_INT_LIT16,
- // Instruction::ADD_INT_LIT8,
+ Instruction::ADD_INT_LIT8,
// Instruction::RSUB_INT_LIT8,
// Instruction::MUL_INT_LIT8,
// Instruction::DIV_INT_LIT8,
@@ -403,7 +403,7 @@
// kMirOpNullCheck,
// kMirOpRangeCheck,
// kMirOpDivZeroCheck,
- // kMirOpCheck,
+ kMirOpCheck,
// kMirOpCheckPart2,
// kMirOpSelect,
// kMirOpLast,