mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8248337: sparc related code clean up after solaris removal
Reviewed-by: dholmes, kvn
This commit is contained in:
parent
f3597c4a54
commit
a588752fd6
29 changed files with 42 additions and 58 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -58,7 +58,7 @@ enum {
|
||||||
|
|
||||||
pd_nof_cpu_regs_linearscan = 32, // number of registers visible to linear scan
|
pd_nof_cpu_regs_linearscan = 32, // number of registers visible to linear scan
|
||||||
pd_nof_fpu_regs_linearscan = pd_nof_fpu_regs_frame_map, // number of registers visible to linear scan
|
pd_nof_fpu_regs_linearscan = pd_nof_fpu_regs_frame_map, // number of registers visible to linear scan
|
||||||
pd_nof_xmm_regs_linearscan = 0, // like sparc we don't have any of these
|
pd_nof_xmm_regs_linearscan = 0, // don't have vector registers
|
||||||
pd_first_cpu_reg = 0,
|
pd_first_cpu_reg = 0,
|
||||||
pd_last_cpu_reg = 16,
|
pd_last_cpu_reg = 16,
|
||||||
pd_first_byte_reg = 0,
|
pd_first_byte_reg = 0,
|
||||||
|
|
|
@ -2072,7 +2072,7 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Currently, vtable-dispatch is only enabled for sparc platforms */
|
/* vtable-dispatch is not enabled for aarch64 platform*/
|
||||||
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
||||||
ShouldNotReachHere();
|
ShouldNotReachHere();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -39,7 +39,7 @@ class JNITypes : AllStatic {
|
||||||
// I.e., they are functionally 'push' operations if they have a 'pos'
|
// I.e., they are functionally 'push' operations if they have a 'pos'
|
||||||
// formal parameter. Note that jlong's and jdouble's are written
|
// formal parameter. Note that jlong's and jdouble's are written
|
||||||
// _in reverse_ of the order in which they appear in the interpreter
|
// _in reverse_ of the order in which they appear in the interpreter
|
||||||
// stack. This is because call stubs (see stubGenerator_sparc.cpp)
|
// stack. This is because call stubs (see stubGenerator_arm.cpp)
|
||||||
// reverse the argument list constructed by JavaCallArguments (see
|
// reverse the argument list constructed by JavaCallArguments (see
|
||||||
// javaCalls.hpp).
|
// javaCalls.hpp).
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -33,8 +33,6 @@
|
||||||
// This is the hook for finding a register in an "well-known" location,
|
// This is the hook for finding a register in an "well-known" location,
|
||||||
// such as a register block of a predetermined format.
|
// such as a register block of a predetermined format.
|
||||||
// Since there is none, we just return NULL.
|
// Since there is none, we just return NULL.
|
||||||
// See registerMap_sparc.hpp for an example of grabbing registers
|
|
||||||
// from register save areas of a standard layout.
|
|
||||||
address pd_location(VMReg reg) const {return NULL;}
|
address pd_location(VMReg reg) const {return NULL;}
|
||||||
|
|
||||||
// no PD state to clear or copy:
|
// no PD state to clear or copy:
|
||||||
|
|
|
@ -823,7 +823,7 @@ int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
|
||||||
}
|
}
|
||||||
|
|
||||||
// On 64 bit we will store integer like items to the stack as
|
// On 64 bit we will store integer like items to the stack as
|
||||||
// 64 bits items (sparc abi) even though java would only store
|
// 64 bits items (Aarch64 abi) even though java would only store
|
||||||
// 32bits for a parameter. On 32bit it will simply be 32 bits
|
// 32bits for a parameter. On 32bit it will simply be 32 bits
|
||||||
// So this routine will do 32->32 on 32bit and 32->64 on 64bit
|
// So this routine will do 32->32 on 32bit and 32->64 on 64bit
|
||||||
static void move32_64(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
static void move32_64(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
||||||
|
|
|
@ -1941,7 +1941,7 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall *op) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Currently, vtable-dispatch is only enabled for sparc platforms */
|
/* vtable-dispatch is not enabled for arm platforms */
|
||||||
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
||||||
ShouldNotReachHere();
|
ShouldNotReachHere();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -71,9 +71,9 @@
|
||||||
// The interpreter and adapters will extend the frame of the caller.
|
// The interpreter and adapters will extend the frame of the caller.
|
||||||
// Since oopMaps are based on the sp of the caller before extension
|
// Since oopMaps are based on the sp of the caller before extension
|
||||||
// we need to know that value. However in order to compute the address
|
// we need to know that value. However in order to compute the address
|
||||||
// of the return address we need the real "raw" sp. Since sparc already
|
// of the return address we need the real "raw" sp. By convention we
|
||||||
// uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
|
// use sp() to mean "raw" sp and unextended_sp() to mean the caller's
|
||||||
// original sp we use that convention.
|
// original sp.
|
||||||
|
|
||||||
intptr_t* _unextended_sp;
|
intptr_t* _unextended_sp;
|
||||||
void adjust_unextended_sp();
|
void adjust_unextended_sp();
|
||||||
|
|
|
@ -1617,7 +1617,7 @@ void SharedRuntime::generate_deopt_blob() {
|
||||||
#ifdef COMPILER2
|
#ifdef COMPILER2
|
||||||
|
|
||||||
//------------------------------generate_uncommon_trap_blob--------------------
|
//------------------------------generate_uncommon_trap_blob--------------------
|
||||||
// Ought to generate an ideal graph & compile, but here's some SPARC ASM
|
// Ought to generate an ideal graph & compile, but here's some ASM
|
||||||
// instead.
|
// instead.
|
||||||
void SharedRuntime::generate_uncommon_trap_blob() {
|
void SharedRuntime::generate_uncommon_trap_blob() {
|
||||||
// allocate space for the code
|
// allocate space for the code
|
||||||
|
|
|
@ -705,6 +705,7 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* vtable_call is not enabled for ppc platform */
|
||||||
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
||||||
ShouldNotReachHere(); // ic_call is used instead.
|
ShouldNotReachHere(); // ic_call is used instead.
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2012, 2013 SAP SE. All rights reserved.
|
* Copyright (c) 2012, 2013 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -40,7 +40,7 @@ class JNITypes : AllStatic {
|
||||||
// if they have a 'pos' formal parameter. Note that jlong's and
|
// if they have a 'pos' formal parameter. Note that jlong's and
|
||||||
// jdouble's are written _in reverse_ of the order in which they
|
// jdouble's are written _in reverse_ of the order in which they
|
||||||
// appear in the interpreter stack. This is because call stubs (see
|
// appear in the interpreter stack. This is because call stubs (see
|
||||||
// stubGenerator_sparc.cpp) reverse the argument list constructed by
|
// stubGenerator_ppc.cpp) reverse the argument list constructed by
|
||||||
// JavaCallArguments (see javaCalls.hpp).
|
// JavaCallArguments (see javaCalls.hpp).
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2012, 2013 SAP SE. All rights reserved.
|
* Copyright (c) 2012, 2013 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -33,8 +33,6 @@
|
||||||
// This is the hook for finding a register in an "well-known" location,
|
// This is the hook for finding a register in an "well-known" location,
|
||||||
// such as a register block of a predetermined format.
|
// such as a register block of a predetermined format.
|
||||||
// Since there is none, we just return NULL.
|
// Since there is none, we just return NULL.
|
||||||
// See registerMap_sparc.hpp for an example of grabbing registers
|
|
||||||
// from register save areas of a standard layout.
|
|
||||||
address pd_location(VMReg reg) const { return NULL; }
|
address pd_location(VMReg reg) const { return NULL; }
|
||||||
|
|
||||||
// no PD state to clear or copy:
|
// no PD state to clear or copy:
|
||||||
|
|
|
@ -3033,7 +3033,7 @@ void TemplateTable::putstatic(int byte_no) {
|
||||||
putfield_or_static(byte_no, true);
|
putfield_or_static(byte_no, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// See SPARC. On PPC64, we have a different jvmti_post_field_mod which does the job.
|
// On PPC64, we have a different jvmti_post_field_mod which does the job.
|
||||||
void TemplateTable::jvmti_post_fast_field_mod() {
|
void TemplateTable::jvmti_post_fast_field_mod() {
|
||||||
__ should_not_reach_here();
|
__ should_not_reach_here();
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ void LIR_Assembler::clinit_barrier(ciMethod* method) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LIR_Assembler::osr_entry() {
|
void LIR_Assembler::osr_entry() {
|
||||||
// On-stack-replacement entry sequence (interpreter frame layout described in interpreter_sparc.cpp):
|
// On-stack-replacement entry sequence (interpreter frame layout described in frame_s390.hpp):
|
||||||
//
|
//
|
||||||
// 1. Create a new compiled activation.
|
// 1. Create a new compiled activation.
|
||||||
// 2. Initialize local variables in the compiled activation. The expression stack must be empty
|
// 2. Initialize local variables in the compiled activation. The expression stack must be empty
|
||||||
|
@ -2524,7 +2524,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
|
||||||
Label *failure_target = op->should_profile() ? &profile_cast_failure : failure;
|
Label *failure_target = op->should_profile() ? &profile_cast_failure : failure;
|
||||||
Label *success_target = op->should_profile() ? &profile_cast_success : success;
|
Label *success_target = op->should_profile() ? &profile_cast_success : success;
|
||||||
|
|
||||||
// Patching may screw with our temporaries on sparc,
|
// Patching may screw with our temporaries,
|
||||||
// so let's do it before loading the class.
|
// so let's do it before loading the class.
|
||||||
if (k->is_loaded()) {
|
if (k->is_loaded()) {
|
||||||
metadata2reg(k->constant_encoding(), k_RInfo);
|
metadata2reg(k->constant_encoding(), k_RInfo);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2016 SAP SE. All rights reserved.
|
* Copyright (c) 2016 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
max_array_allocation_length = 0x01000000 // Sparc friendly value, requires sethi only.
|
max_array_allocation_length = 0x01000000
|
||||||
};
|
};
|
||||||
|
|
||||||
// Allocation of arrays.
|
// Allocation of arrays.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2016, 2018 SAP SE. All rights reserved.
|
* Copyright (c) 2016, 2018 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
// Sets the default values for platform dependent flags used by the client compiler.
|
// Sets the default values for platform dependent flags used by the client compiler.
|
||||||
// (see c1_globals.hpp)
|
// (see c1_globals.hpp)
|
||||||
// Flags sorted according to sparc.
|
|
||||||
|
|
||||||
#ifndef TIERED
|
#ifndef TIERED
|
||||||
define_pd_global(bool, BackgroundCompilation, true);
|
define_pd_global(bool, BackgroundCompilation, true);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2016, 2018 SAP SE. All rights reserved.
|
* Copyright (c) 2016, 2018 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
// Sets the default values for platform dependent flags used by the server compiler.
|
// Sets the default values for platform dependent flags used by the server compiler.
|
||||||
// (see c2_globals.hpp).
|
// (see c2_globals.hpp).
|
||||||
// Sorted according to sparc.
|
|
||||||
|
|
||||||
define_pd_global(bool, BackgroundCompilation, true);
|
define_pd_global(bool, BackgroundCompilation, true);
|
||||||
define_pd_global(bool, CICompileOSR, true);
|
define_pd_global(bool, CICompileOSR, true);
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
// Sets the default values for platform dependent flags used by the runtime system.
|
// Sets the default values for platform dependent flags used by the runtime system.
|
||||||
// (see globals.hpp)
|
// (see globals.hpp)
|
||||||
// Sorted according to sparc.
|
|
||||||
|
|
||||||
define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks.
|
define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks.
|
||||||
define_pd_global(bool, TrapBasedNullChecks, true);
|
define_pd_global(bool, TrapBasedNullChecks, true);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2016, 2019, SAP SE. All rights reserved.
|
* Copyright (c) 2016, 2019, SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
|
@ -652,7 +652,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||||
assert(Universe::heap() != NULL, "java heap must be initialized to generate partial_subtype_check stub");
|
assert(Universe::heap() != NULL, "java heap must be initialized to generate partial_subtype_check stub");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always take the slow path (see SPARC).
|
// Always take the slow path.
|
||||||
__ check_klass_subtype_slow_path(Rsubklass, Rsuperklass,
|
__ check_klass_subtype_slow_path(Rsubklass, Rsuperklass,
|
||||||
Rarray_ptr, Rlength, NULL, &miss);
|
Rarray_ptr, Rlength, NULL, &miss);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -112,9 +112,9 @@
|
||||||
// The interpreter and adapters will extend the frame of the caller.
|
// The interpreter and adapters will extend the frame of the caller.
|
||||||
// Since oopMaps are based on the sp of the caller before extension
|
// Since oopMaps are based on the sp of the caller before extension
|
||||||
// we need to know that value. However in order to compute the address
|
// we need to know that value. However in order to compute the address
|
||||||
// of the return address we need the real "raw" sp. Since sparc already
|
// of the return address we need the real "raw" sp. By convention we
|
||||||
// uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
|
// use sp() to mean "raw" sp and unextended_sp() to mean the caller's
|
||||||
// original sp we use that convention.
|
// original sp.
|
||||||
|
|
||||||
intptr_t* _unextended_sp;
|
intptr_t* _unextended_sp;
|
||||||
void adjust_unextended_sp() NOT_DEBUG_RETURN;
|
void adjust_unextended_sp() NOT_DEBUG_RETURN;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -38,7 +38,7 @@ class JNITypes : AllStatic {
|
||||||
// I.e., they are functionally 'push' operations if they have a 'pos'
|
// I.e., they are functionally 'push' operations if they have a 'pos'
|
||||||
// formal parameter. Note that jlong's and jdouble's are written
|
// formal parameter. Note that jlong's and jdouble's are written
|
||||||
// _in reverse_ of the order in which they appear in the interpreter
|
// _in reverse_ of the order in which they appear in the interpreter
|
||||||
// stack. This is because call stubs (see stubGenerator_sparc.cpp)
|
// stack. This is because call stubs (see stubGenerator_x86_[32,64].cpp)
|
||||||
// reverse the argument list constructed by JavaCallArguments (see
|
// reverse the argument list constructed by JavaCallArguments (see
|
||||||
// javaCalls.hpp).
|
// javaCalls.hpp).
|
||||||
|
|
||||||
|
|
|
@ -1120,7 +1120,7 @@ int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
|
||||||
}
|
}
|
||||||
|
|
||||||
// On 64 bit we will store integer like items to the stack as
|
// On 64 bit we will store integer like items to the stack as
|
||||||
// 64 bits items (sparc abi) even though java would only store
|
// 64 bits items (x86_32/64 abi) even though java would only store
|
||||||
// 32bits for a parameter. On 32bit it will simply be 32 bits
|
// 32bits for a parameter. On 32bit it will simply be 32 bits
|
||||||
// So this routine will do 32->32 on 32bit and 32->64 on 64bit
|
// So this routine will do 32->32 on 32bit and 32->64 on 64bit
|
||||||
static void move32_64(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
static void move32_64(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
||||||
|
@ -1246,7 +1246,6 @@ static void float_move(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
||||||
|
|
||||||
// The calling conventions assures us that each VMregpair is either
|
// The calling conventions assures us that each VMregpair is either
|
||||||
// all really one physical register or adjacent stack slots.
|
// all really one physical register or adjacent stack slots.
|
||||||
// This greatly simplifies the cases here compared to sparc.
|
|
||||||
|
|
||||||
if (src.first()->is_stack()) {
|
if (src.first()->is_stack()) {
|
||||||
if (dst.first()->is_stack()) {
|
if (dst.first()->is_stack()) {
|
||||||
|
@ -1275,7 +1274,6 @@ static void long_move(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
||||||
|
|
||||||
// The calling conventions assures us that each VMregpair is either
|
// The calling conventions assures us that each VMregpair is either
|
||||||
// all really one physical register or adjacent stack slots.
|
// all really one physical register or adjacent stack slots.
|
||||||
// This greatly simplifies the cases here compared to sparc.
|
|
||||||
|
|
||||||
if (src.is_single_phys_reg() ) {
|
if (src.is_single_phys_reg() ) {
|
||||||
if (dst.is_single_phys_reg()) {
|
if (dst.is_single_phys_reg()) {
|
||||||
|
@ -1301,7 +1299,6 @@ static void double_move(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {
|
||||||
|
|
||||||
// The calling conventions assures us that each VMregpair is either
|
// The calling conventions assures us that each VMregpair is either
|
||||||
// all really one physical register or adjacent stack slots.
|
// all really one physical register or adjacent stack slots.
|
||||||
// This greatly simplifies the cases here compared to sparc.
|
|
||||||
|
|
||||||
if (src.is_single_phys_reg() ) {
|
if (src.is_single_phys_reg() ) {
|
||||||
if (dst.is_single_phys_reg()) {
|
if (dst.is_single_phys_reg()) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -32,8 +32,6 @@
|
||||||
// This is the hook for finding a register in an "well-known" location,
|
// This is the hook for finding a register in an "well-known" location,
|
||||||
// such as a register block of a predetermined format.
|
// such as a register block of a predetermined format.
|
||||||
// Since there is none, we just return NULL.
|
// Since there is none, we just return NULL.
|
||||||
// See registerMap_sparc.hpp for an example of grabbing registers
|
|
||||||
// from register save areas of a standard layout.
|
|
||||||
address pd_location(VMReg reg) const { return NULL; }
|
address pd_location(VMReg reg) const { return NULL; }
|
||||||
|
|
||||||
// no PD state to clear or copy:
|
// no PD state to clear or copy:
|
||||||
|
|
|
@ -321,7 +321,7 @@ bool os::have_special_privileges() {
|
||||||
|
|
||||||
|
|
||||||
#ifndef SYS_gettid
|
#ifndef SYS_gettid
|
||||||
// i386: 224, ia64: 1105, amd64: 186, sparc 143
|
// i386: 224, ia64: 1105, amd64: 186, sparc: 143
|
||||||
#ifdef __ia64__
|
#ifdef __ia64__
|
||||||
#define SYS_gettid 1105
|
#define SYS_gettid 1105
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -151,8 +151,8 @@ class FrameMap : public CompilationResourceObj {
|
||||||
VMReg sp_offset2vmreg(ByteSize offset) const;
|
VMReg sp_offset2vmreg(ByteSize offset) const;
|
||||||
|
|
||||||
// platform dependent hook used to check that frame is properly
|
// platform dependent hook used to check that frame is properly
|
||||||
// addressable on the platform. Used by sparc to verify that all
|
// addressable on the platform. Used by arm, ppc to verify that all
|
||||||
// stack addresses are expressable in a simm13.
|
// stack addresses are valid.
|
||||||
bool validate_frame();
|
bool validate_frame();
|
||||||
|
|
||||||
static LIR_Opr map_to_opr(BasicType type, VMRegPair* reg, bool incoming);
|
static LIR_Opr map_to_opr(BasicType type, VMRegPair* reg, bool incoming);
|
||||||
|
|
|
@ -1446,10 +1446,6 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
|
||||||
LIRItem cmp (x->argument_at(2), this); // value to compare with field
|
LIRItem cmp (x->argument_at(2), this); // value to compare with field
|
||||||
LIRItem val (x->argument_at(3), this); // replace field with val if matches cmp
|
LIRItem val (x->argument_at(3), this); // replace field with val if matches cmp
|
||||||
assert(obj.type()->tag() == objectTag, "invalid type");
|
assert(obj.type()->tag() == objectTag, "invalid type");
|
||||||
|
|
||||||
// In 64bit the type can be long, sparc doesn't have this assert
|
|
||||||
// assert(offset.type()->tag() == intTag, "invalid type");
|
|
||||||
|
|
||||||
assert(cmp.type()->tag() == type->tag(), "invalid type");
|
assert(cmp.type()->tag() == type->tag(), "invalid type");
|
||||||
assert(val.type()->tag() == type->tag(), "invalid type");
|
assert(val.type()->tag() == type->tag(), "invalid type");
|
||||||
|
|
||||||
|
|
|
@ -2704,7 +2704,7 @@ int LinearScan::append_scope_value_for_operand(LIR_Opr opr, GrowableArray<ScopeV
|
||||||
if (!frame_map()->locations_for_slot(opr->double_stack_ix(), loc_type, &loc1, NULL)) {
|
if (!frame_map()->locations_for_slot(opr->double_stack_ix(), loc_type, &loc1, NULL)) {
|
||||||
bailout("too large frame");
|
bailout("too large frame");
|
||||||
}
|
}
|
||||||
// Does this reverse on x86 vs. sparc?
|
|
||||||
first = new LocationValue(loc1);
|
first = new LocationValue(loc1);
|
||||||
second = _int_0_scope_value;
|
second = _int_0_scope_value;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -244,7 +244,7 @@ void Runtime1::generate_blob_for(BufferBlob* buffer_blob, StubID id) {
|
||||||
case unwind_exception_id:
|
case unwind_exception_id:
|
||||||
case counter_overflow_id:
|
case counter_overflow_id:
|
||||||
#if defined(PPC32)
|
#if defined(PPC32)
|
||||||
case handle_exception_nofpu_id: // Unused on sparc
|
case handle_exception_nofpu_id:
|
||||||
#endif
|
#endif
|
||||||
expect_oop_map = false;
|
expect_oop_map = false;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -63,7 +63,7 @@ class SpaceDecorator: public AllStatic {
|
||||||
// spaces are resized after an expansion.
|
// spaces are resized after an expansion.
|
||||||
// The class SpaceMangler keeps a pointer to the top of the allocated
|
// The class SpaceMangler keeps a pointer to the top of the allocated
|
||||||
// area and provides the methods for doing the piece meal mangling.
|
// area and provides the methods for doing the piece meal mangling.
|
||||||
// Methods for doing sparces and full checking of the mangling are
|
// Methods for doing spaces and full checking of the mangling are
|
||||||
// included. The full checking is done if DEBUG_MANGLING is defined.
|
// included. The full checking is done if DEBUG_MANGLING is defined.
|
||||||
// GenSpaceMangler is used with the GenCollectedHeap collectors and
|
// GenSpaceMangler is used with the GenCollectedHeap collectors and
|
||||||
// MutableSpaceMangler is used with the ParallelScavengeHeap collectors.
|
// MutableSpaceMangler is used with the ParallelScavengeHeap collectors.
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
// 31 bits, see os::random(). Also, 64-bit vm's require
|
// 31 bits, see os::random(). Also, 64-bit vm's require
|
||||||
// a hash value no bigger than 32 bits because they will not
|
// a hash value no bigger than 32 bits because they will not
|
||||||
// properly generate a mask larger than that: see library_call.cpp
|
// properly generate a mask larger than that: see library_call.cpp
|
||||||
// and c1_CodePatterns_sparc.cpp.
|
|
||||||
//
|
//
|
||||||
// - the biased lock pattern is used to bias a lock toward a given
|
// - the biased lock pattern is used to bias a lock toward a given
|
||||||
// thread. When this pattern is set in the low three bits, the lock
|
// thread. When this pattern is set in the low three bits, the lock
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue