diff options
Diffstat (limited to 'vm/mterp/armv5te/OP_THROW_VERIFICATION_ERROR.S')
-rw-r--r-- | vm/mterp/armv5te/OP_THROW_VERIFICATION_ERROR.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/vm/mterp/armv5te/OP_THROW_VERIFICATION_ERROR.S b/vm/mterp/armv5te/OP_THROW_VERIFICATION_ERROR.S new file mode 100644 index 0000000..8bd4f35 --- /dev/null +++ b/vm/mterp/armv5te/OP_THROW_VERIFICATION_ERROR.S @@ -0,0 +1,13 @@ +%verify executed + /* + * Handle a throw-verification-error instruction. This throws an + * exception for an error discovered during verification. The + * exception is indicated by AA, with some detail provided by BBBB. + */ + /* op AA, ref@BBBB */ + ldr r0, [rGLUE, #offGlue_method] @ r0<- glue->method + FETCH(r2, 1) @ r2<- BBBB + EXPORT_PC() @ export the PC + mov r1, rINST, lsr #8 @ r1<- AA + bl dvmThrowVerificationError @ always throws + b common_exceptionThrown @ handle exception |