Mercurial > hg > truffle
diff src/cpu/sparc/vm/nativeInst_sparc.hpp @ 11233:5a9d68c3a7d7
SPARC: a lot of fixes and more
author | twisti |
---|---|
date | Mon, 05 Aug 2013 22:23:00 -0700 |
parents | 46c544b8fbfc |
children | d8041d695d19 |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/nativeInst_sparc.hpp Mon Aug 05 22:21:47 2013 -0700 +++ b/src/cpu/sparc/vm/nativeInst_sparc.hpp Mon Aug 05 22:23:00 2013 -0700 @@ -55,6 +55,7 @@ bool is_dtrace_trap(); bool is_nop() { return long_at(0) == nop_instruction(); } bool is_call() { return is_op(long_at(0), Assembler::call_op); } + bool is_call_reg() { return is_op(long_at(0), Assembler::arith_op); } bool is_sethi() { return (is_op2(long_at(0), Assembler::sethi_op2) && inv_rd(long_at(0)) != G0); } @@ -417,6 +418,19 @@ return call; } +class NativeCallReg: public NativeInstruction { + public: + enum Sparc_specific_constants { + instruction_size = 8, + return_address_offset = 8, + instruction_offset = 0 + }; + + address next_instruction_address() const { + return addr_at(instruction_size); + } +}; + // The NativeFarCall is an abstraction for accessing/manipulating native call-anywhere // instructions in the sparcv9 vm. Used to call native methods which may be loaded // anywhere in the address space, possibly out of reach of a call instruction.