Mercurial > hg > truffle
changeset 5593:fcb8d2b8dc42
fixed bug in stubs for RuntimeCall.LogObject and RuntimeCall.LogPrimitive: was missing frame management code around runtime call
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 14 Jun 2012 11:56:24 +0200 |
parents | d64507a295cc |
children | 9b85ab3d3ab7 |
files | src/cpu/x86/vm/c1_Runtime1_x86.cpp |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Wed Jun 13 19:11:20 2012 +0200 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Thu Jun 14 11:56:24 2012 +0200 @@ -1887,7 +1887,11 @@ case graal_log_primitive_id: { __ enter(); - __ call_RT(noreg, noreg, (address)graal_log_primitive, j_rarg0, j_rarg1, j_rarg2); + oop_maps = new OopMapSet(); + OopMap* oop_map = save_live_registers(sasm, 0); + int call_offset = __ call_RT(noreg, noreg, (address)graal_log_primitive, j_rarg0, j_rarg1, j_rarg2); + oop_maps->add_gc_map(call_offset, oop_map); + restore_live_registers(sasm); __ leave(); __ ret(0); break; @@ -1895,7 +1899,11 @@ case graal_log_object_id: { __ enter(); - __ call_RT(noreg, noreg, (address)graal_log_object, j_rarg0, j_rarg1, j_rarg2); + oop_maps = new OopMapSet(); + OopMap* oop_map = save_live_registers(sasm, 0); + int call_offset = __ call_RT(noreg, noreg, (address)graal_log_object, j_rarg0, j_rarg1, j_rarg2); + oop_maps->add_gc_map(call_offset, oop_map); + restore_live_registers(sasm); __ leave(); __ ret(0); break;