diff options
Diffstat (limited to 'vm/mterp/mips/OP_RETURN_WIDE.S')
-rw-r--r-- | vm/mterp/mips/OP_RETURN_WIDE.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/vm/mterp/mips/OP_RETURN_WIDE.S b/vm/mterp/mips/OP_RETURN_WIDE.S new file mode 100644 index 000000000..bd93d6a03 --- /dev/null +++ b/vm/mterp/mips/OP_RETURN_WIDE.S @@ -0,0 +1,13 @@ +%verify "executed" + /* + * Return a 64-bit value. Copies the return value into the "thread" + * structure, then jumps to the return handler. + */ + /* return-wide vAA */ + GET_OPA(a2) # a2 <- AA + EAS2(a2, rFP, a2) # a2 <- &fp[AA] + addu a3, rSELF, offThread_retval # a3 <- &self->retval + LOAD64(a0, a1, a2) # a0/a1 <- vAA/vAA+1 + STORE64(a0, a1, a3) # retval <- a0/a1 + b common_returnFromMethod + |