Complete compiler portion of exception handling
Will still need much testing once the runtime portions are in place.
Change-Id: I90fc7c1fd89bfae89dfd19a6e422024b6b5454ec
diff --git a/src/compiler/codegen/arm/ArmLIR.h b/src/compiler/codegen/arm/ArmLIR.h
index 9d22c4f..b35f39f 100644
--- a/src/compiler/codegen/arm/ArmLIR.h
+++ b/src/compiler/codegen/arm/ArmLIR.h
@@ -347,6 +347,17 @@
kArmCondNv = 0xf, /* 1111 */
} ArmConditionCode;
+typedef enum ArmThrowKind {
+ kArmThrowNullPointer,
+ kArmThrowDivZero,
+ kArmThrowArrayBounds,
+ kArmThrowVerificationError,
+ kArmThrowNegArraySize,
+ kArmThrowInternalError,
+ kArmThrowRuntimeException,
+ kArmThrowNoSuchMethod,
+} ArmThrowKind;
+
#define isPseudoOpcode(opcode) ((int)(opcode) < 0)
/*
@@ -355,6 +366,7 @@
* Assemble.c.
*/
typedef enum ArmOpcode {
+ kArmPseudoThrowTarget = -14,
kArmPseudoCaseLabel = -13,
kArmPseudoMethodEntry = -12,
kArmPseudoMethodExit = -11,