Skip to content

Commit a8c18eb

Browse files
committed
8295257: Remove implicit noreg temp register arguments in aarch64 MacroAssembler
Reviewed-by: aph, tschatzl
1 parent 6553065 commit a8c18eb

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ void InterpreterMacroAssembler::load_resolved_reference_at_index(
281281
resolve_oop_handle(result, tmp, rscratch2);
282282
// Add in the index
283283
add(index, index, arrayOopDesc::base_offset_in_bytes(T_OBJECT) >> LogBytesPerHeapOop);
284-
load_heap_oop(result, Address(result, index, Address::uxtw(LogBytesPerHeapOop)));
284+
load_heap_oop(result, Address(result, index, Address::uxtw(LogBytesPerHeapOop)), tmp, rscratch2);
285285
}
286286

287287
void InterpreterMacroAssembler::load_resolved_klass_at_offset(

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -846,13 +846,13 @@ class MacroAssembler: public Assembler {
846846
void access_store_at(BasicType type, DecoratorSet decorators, Address dst, Register src,
847847
Register tmp1, Register tmp2, Register tmp3);
848848

849-
void load_heap_oop(Register dst, Address src, Register tmp1 = noreg,
850-
Register tmp2 = noreg, DecoratorSet decorators = 0);
849+
void load_heap_oop(Register dst, Address src, Register tmp1,
850+
Register tmp2, DecoratorSet decorators = 0);
851851

852-
void load_heap_oop_not_null(Register dst, Address src, Register tmp1 = noreg,
853-
Register tmp2 = noreg, DecoratorSet decorators = 0);
854-
void store_heap_oop(Address dst, Register src, Register tmp1 = noreg,
855-
Register tmp2 = noreg, Register tmp3 = noreg, DecoratorSet decorators = 0);
852+
void load_heap_oop_not_null(Register dst, Address src, Register tmp1,
853+
Register tmp2, DecoratorSet decorators = 0);
854+
void store_heap_oop(Address dst, Register src, Register tmp1,
855+
Register tmp2, Register tmp3, DecoratorSet decorators = 0);
856856

857857
// currently unimplemented
858858
// Used for storing NULL. All other oop constants should be

src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,11 @@ void MethodHandles::jump_to_lambda_form(MacroAssembler* _masm,
136136

137137
// Load the invoker, as MH -> MH.form -> LF.vmentry
138138
__ verify_oop(recv);
139-
__ load_heap_oop(method_temp, Address(recv, NONZERO(java_lang_invoke_MethodHandle::form_offset())), temp2);
139+
__ load_heap_oop(method_temp, Address(recv, NONZERO(java_lang_invoke_MethodHandle::form_offset())), temp2, rscratch2);
140140
__ verify_oop(method_temp);
141-
__ load_heap_oop(method_temp, Address(method_temp, NONZERO(java_lang_invoke_LambdaForm::vmentry_offset())), temp2);
141+
__ load_heap_oop(method_temp, Address(method_temp, NONZERO(java_lang_invoke_LambdaForm::vmentry_offset())), temp2, rscratch2);
142142
__ verify_oop(method_temp);
143-
__ load_heap_oop(method_temp, Address(method_temp, NONZERO(java_lang_invoke_MemberName::method_offset())), temp2);
143+
__ load_heap_oop(method_temp, Address(method_temp, NONZERO(java_lang_invoke_MemberName::method_offset())), temp2, rscratch2);
144144
__ verify_oop(method_temp);
145145
__ access_load_at(T_ADDRESS, IN_HEAP, method_temp, Address(method_temp, NONZERO(java_lang_invoke_ResolvedMethodName::vmtarget_offset())), noreg, noreg);
146146

@@ -337,7 +337,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
337337
if (VerifyMethodHandles && iid != vmIntrinsics::_linkToInterface) {
338338
Label L_ok;
339339
Register temp2_defc = temp2;
340-
__ load_heap_oop(temp2_defc, member_clazz, temp3);
340+
__ load_heap_oop(temp2_defc, member_clazz, temp3, rscratch2);
341341
load_klass_from_Class(_masm, temp2_defc);
342342
__ verify_klass_ptr(temp2_defc);
343343
__ check_klass_subtype(temp1_recv_klass, temp2_defc, temp3, L_ok);
@@ -365,15 +365,15 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
365365
if (VerifyMethodHandles) {
366366
verify_ref_kind(_masm, JVM_REF_invokeSpecial, member_reg, temp3);
367367
}
368-
__ load_heap_oop(rmethod, member_vmtarget);
368+
__ load_heap_oop(rmethod, member_vmtarget, temp3, rscratch2);
369369
__ access_load_at(T_ADDRESS, IN_HEAP, rmethod, vmtarget_method, noreg, noreg);
370370
break;
371371

372372
case vmIntrinsics::_linkToStatic:
373373
if (VerifyMethodHandles) {
374374
verify_ref_kind(_masm, JVM_REF_invokeStatic, member_reg, temp3);
375375
}
376-
__ load_heap_oop(rmethod, member_vmtarget);
376+
__ load_heap_oop(rmethod, member_vmtarget, temp3, rscratch2);
377377
__ access_load_at(T_ADDRESS, IN_HEAP, rmethod, vmtarget_method, noreg, noreg);
378378
break;
379379

@@ -415,7 +415,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
415415
}
416416

417417
Register temp3_intf = temp3;
418-
__ load_heap_oop(temp3_intf, member_clazz);
418+
__ load_heap_oop(temp3_intf, member_clazz, temp2, rscratch2);
419419
load_klass_from_Class(_masm, temp3_intf);
420420
__ verify_klass_ptr(temp3_intf);
421421

0 commit comments

Comments
 (0)