Skip to content

Commit f51cb50

Browse files
committed
extra reg
1 parent 6dd7e4d commit f51cb50

4 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2415,7 +2415,7 @@ void LIR_Assembler::emit_alloc_array(LIR_OpAllocArray* op) {
24152415
void LIR_Assembler::type_profile_helper(Register mdo, ciMethodData *md, ciProfileData *data,
24162416
Register recv, Register tmp1) {
24172417
int mdp_offset = md->byte_offset_of_slot(data, in_ByteSize(0));
2418-
__ profile_receiver_type(recv, mdo, mdp_offset);
2418+
__ profile_receiver_type(recv, mdo, mdp_offset, tmp1);
24192419
}
24202420

24212421
void LIR_Assembler::setup_md_access(ciMethod* method, int bci,

src/hotspot/cpu/s390/interp_masm_s390.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,7 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver,
12671267
test_method_data_pointer(mdp, profile_continue);
12681268

12691269
// Record the receiver type.
1270-
profile_receiver_type(receiver, mdp, 0);
1270+
profile_receiver_type(receiver, mdp, 0, reg2);
12711271

12721272
// The method data pointer needs to be updated to reflect the new target.
12731273
update_mdp_by_constant(mdp, in_bytes(VirtualCallData::virtual_call_data_size()));
@@ -1343,7 +1343,7 @@ void InterpreterMacroAssembler::profile_typecheck(Register mdp, Register klass,
13431343
mdp_delta = in_bytes(VirtualCallData::virtual_call_data_size());
13441344

13451345
// Record the object type.
1346-
profile_receiver_type(klass, mdp, 0);
1346+
profile_receiver_type(klass, mdp, 0, reg2);
13471347
}
13481348
update_mdp_by_constant(mdp, mdp_delta);
13491349

src/hotspot/cpu/s390/macroAssembler_s390.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6779,8 +6779,8 @@ void MacroAssembler::load_on_condition_imm_64(Register dst, int64_t i2, branch_c
67796779
// avoids grossly misrepresenting the profiles under concurrent updates. For speed,
67806780
// counter updates are not atomic.
67816781
//
6782-
void MacroAssembler::profile_receiver_type(Register recv, Register mdp, int mdp_offset) {
6783-
const Register tmp0 = Z_R0;
6782+
void MacroAssembler::profile_receiver_type(Register recv, Register mdp, int mdp_offset, Register scratch) {
6783+
const Register tmp0 = scratch;
67846784
const Register tmp1 = Z_R1;
67856785
assert_different_registers(recv, mdp, tmp1, tmp0);
67866786

src/hotspot/cpu/s390/macroAssembler_s390.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1112,7 +1112,7 @@ class MacroAssembler: public Assembler {
11121112
void load_on_condition_imm_32(Register dst, int64_t i2, branch_condition cc);
11131113
void load_on_condition_imm_64(Register dst, int64_t i2, branch_condition cc);
11141114

1115-
void profile_receiver_type(Register recv, Register mdp, int mdp_offset);
1115+
void profile_receiver_type(Register recv, Register mdp, int mdp_offset, Register tmp1);
11161116
};
11171117

11181118
#ifdef ASSERT

0 commit comments

Comments
 (0)