8183571: PPC64 build broken after 8178499
Reviewed-by: simonis
This commit is contained in:
parent
41652a15e1
commit
907093af23
@ -288,6 +288,7 @@ static OopMapSet* generate_exception_throw_with_stack_parms(StubAssembler* sasm,
|
|||||||
__ ld(R5_ARG3, frame_size_in_bytes + padding + 8, R1_SP);
|
__ ld(R5_ARG3, frame_size_in_bytes + padding + 8, R1_SP);
|
||||||
case 1:
|
case 1:
|
||||||
__ ld(R4_ARG2, frame_size_in_bytes + padding + 0, R1_SP);
|
__ ld(R4_ARG2, frame_size_in_bytes + padding + 0, R1_SP);
|
||||||
|
case 0:
|
||||||
call_offset = __ call_RT(noreg, noreg, target);
|
call_offset = __ call_RT(noreg, noreg, target);
|
||||||
break;
|
break;
|
||||||
default: Unimplemented(); break;
|
default: Unimplemented(); break;
|
||||||
@ -338,6 +339,7 @@ static OopMapSet* stub_call_with_stack_parms(StubAssembler* sasm, Register resul
|
|||||||
__ ld(R5_ARG3, frame_size_in_bytes + padding + 8, R1_SP);
|
__ ld(R5_ARG3, frame_size_in_bytes + padding + 8, R1_SP);
|
||||||
case 1:
|
case 1:
|
||||||
__ ld(R4_ARG2, frame_size_in_bytes + padding + 0, R1_SP);
|
__ ld(R4_ARG2, frame_size_in_bytes + padding + 0, R1_SP);
|
||||||
|
case 0:
|
||||||
call_offset = __ call_RT(result, noreg, target);
|
call_offset = __ call_RT(result, noreg, target);
|
||||||
break;
|
break;
|
||||||
default: Unimplemented(); break;
|
default: Unimplemented(); break;
|
||||||
|
@ -82,13 +82,7 @@
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
// C frame layout
|
// C frame layout
|
||||||
|
static const int alignment_in_bytes = 16;
|
||||||
enum {
|
|
||||||
// stack alignment
|
|
||||||
alignment_in_bytes = 16,
|
|
||||||
// log_2(16*8 bits) = 7.
|
|
||||||
log_2_of_alignment_in_bits = 7
|
|
||||||
};
|
|
||||||
|
|
||||||
// ABI_MINFRAME:
|
// ABI_MINFRAME:
|
||||||
struct abi_minframe {
|
struct abi_minframe {
|
||||||
|
@ -874,7 +874,7 @@ static address gen_c2i_adapter(MacroAssembler *masm,
|
|||||||
|
|
||||||
// Adapter needs TOP_IJAVA_FRAME_ABI.
|
// Adapter needs TOP_IJAVA_FRAME_ABI.
|
||||||
const int adapter_size = frame::top_ijava_frame_abi_size +
|
const int adapter_size = frame::top_ijava_frame_abi_size +
|
||||||
align_up(total_args_passed * wordSize, frame::alignment_in_bytes);
|
align_up(total_args_passed * wordSize, frame::alignment_in_bytes);
|
||||||
|
|
||||||
// regular (verified) c2i entry point
|
// regular (verified) c2i entry point
|
||||||
c2i_entrypoint = __ pc();
|
c2i_entrypoint = __ pc();
|
||||||
@ -2204,8 +2204,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
|
|||||||
// disallows any pending_exception.
|
// disallows any pending_exception.
|
||||||
|
|
||||||
// Save argument registers and leave room for C-compatible ABI_REG_ARGS.
|
// Save argument registers and leave room for C-compatible ABI_REG_ARGS.
|
||||||
int frame_size = frame::abi_reg_args_size +
|
int frame_size = frame::abi_reg_args_size + align_up(total_c_args * wordSize, frame::alignment_in_bytes);
|
||||||
align_up(total_c_args * wordSize, frame::alignment_in_bytes);
|
|
||||||
__ mr(R11_scratch1, R1_SP);
|
__ mr(R11_scratch1, R1_SP);
|
||||||
RegisterSaver::push_frame_and_save_argument_registers(masm, R12_scratch2, frame_size, total_c_args, out_regs, out_regs2);
|
RegisterSaver::push_frame_and_save_argument_registers(masm, R12_scratch2, frame_size, total_c_args, out_regs, out_regs2);
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ void VM_Version::initialize() {
|
|||||||
UINTX_FORMAT " on this machine", PowerArchitecturePPC64);
|
UINTX_FORMAT " on this machine", PowerArchitecturePPC64);
|
||||||
|
|
||||||
// Power 8: Configure Data Stream Control Register.
|
// Power 8: Configure Data Stream Control Register.
|
||||||
if (has_mfdscr()) {
|
if (PowerArchitecturePPC64 >= 8 && has_mfdscr()) {
|
||||||
config_dscr();
|
config_dscr();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -698,7 +698,7 @@ void VM_Version::determine_features() {
|
|||||||
// Execute code. Illegal instructions will be replaced by 0 in the signal handler.
|
// Execute code. Illegal instructions will be replaced by 0 in the signal handler.
|
||||||
VM_Version::_is_determine_features_test_running = true;
|
VM_Version::_is_determine_features_test_running = true;
|
||||||
// We must align the first argument to 16 bytes because of the lqarx check.
|
// We must align the first argument to 16 bytes because of the lqarx check.
|
||||||
(*test)(align_up(mid_of_test_area, 16), (uint64_t)0);
|
(*test)(align_up((address)mid_of_test_area, 16), 0);
|
||||||
VM_Version::_is_determine_features_test_running = false;
|
VM_Version::_is_determine_features_test_running = false;
|
||||||
|
|
||||||
// determine which instructions are legal.
|
// determine which instructions are legal.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user