Mercurial > hg > truffle
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 5907:031df0387c09
7150051: incorrect oopmap in critical native
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Thu, 01 Mar 2012 15:31:33 -0800 |
parents | 2ee7dcc77c63 |
children | 1d7922586cf6 |
comparison
equal
deleted
inserted
replaced
5906:b279f99d7143 | 5907:031df0387c09 |
---|---|
1195 } | 1195 } |
1196 } | 1196 } |
1197 if (in_regs[i].first()->is_Register() && | 1197 if (in_regs[i].first()->is_Register() && |
1198 (in_sig_bt[i] == T_LONG || in_sig_bt[i] == T_ARRAY)) { | 1198 (in_sig_bt[i] == T_LONG || in_sig_bt[i] == T_ARRAY)) { |
1199 int offset = slot * VMRegImpl::stack_slot_size; | 1199 int offset = slot * VMRegImpl::stack_slot_size; |
1200 slot += VMRegImpl::slots_per_word; | |
1201 if (map != NULL) { | 1200 if (map != NULL) { |
1202 __ movq(Address(rsp, offset), in_regs[i].first()->as_Register()); | 1201 __ movq(Address(rsp, offset), in_regs[i].first()->as_Register()); |
1203 if (in_sig_bt[i] == T_ARRAY) { | 1202 if (in_sig_bt[i] == T_ARRAY) { |
1204 map->set_oop(VMRegImpl::stack2reg(slot));; | 1203 map->set_oop(VMRegImpl::stack2reg(slot));; |
1205 } | 1204 } |
1206 } else { | 1205 } else { |
1207 __ movq(in_regs[i].first()->as_Register(), Address(rsp, offset)); | 1206 __ movq(in_regs[i].first()->as_Register(), Address(rsp, offset)); |
1208 } | 1207 } |
1208 slot += VMRegImpl::slots_per_word; | |
1209 } | 1209 } |
1210 } | 1210 } |
1211 // Save or restore single word registers | 1211 // Save or restore single word registers |
1212 for ( int i = 0; i < total_in_args; i++) { | 1212 for ( int i = 0; i < total_in_args; i++) { |
1213 if (in_regs[i].first()->is_Register()) { | 1213 if (in_regs[i].first()->is_Register()) { |