equal
deleted
inserted
replaced
49 } |
49 } |
50 |
50 |
51 // ---------------------------------------------------------------------------- |
51 // ---------------------------------------------------------------------------- |
52 |
52 |
53 #define __ _masm. |
53 #define __ _masm. |
54 address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) { |
54 address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark) { |
55 // Stub is fixed up when the corresponding call is converted from |
55 // Stub is fixed up when the corresponding call is converted from |
56 // calling compiled code to calling interpreted code. |
56 // calling compiled code to calling interpreted code. |
57 // mov rmethod, 0 |
57 // mov rmethod, 0 |
58 // jmp -4 # to self |
58 // jmp -4 # to self |
59 |
59 |
60 address mark = cbuf.insts_mark(); // Get mark within main instrs section. |
60 if (mark == NULL) { |
|
61 mark = cbuf.insts_mark(); // Get mark within main instrs section. |
|
62 } |
61 |
63 |
62 // Note that the code buffer's insts_mark is always relative to insts. |
64 // Note that the code buffer's insts_mark is always relative to insts. |
63 // That's why we must use the macroassembler to generate a stub. |
65 // That's why we must use the macroassembler to generate a stub. |
64 MacroAssembler _masm(&cbuf); |
66 MacroAssembler _masm(&cbuf); |
65 |
67 |