mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
6985015: C1 needs to support compressed oops
This change implements compressed oops for C1 for x64 and sparc. The changes are mostly on the codegen level, with a few exceptions when we do access things outside of the heap that are uncompressed from the IR. Compressed oops are now also enabled with tiered. Reviewed-by: twisti, kvn, never, phh
This commit is contained in:
parent
8006fe8f75
commit
d59d7ffc4a
30 changed files with 493 additions and 429 deletions
|
@ -1273,7 +1273,7 @@ void LinearScan::build_intervals() {
|
|||
int caller_save_registers[LinearScan::nof_regs];
|
||||
|
||||
int i;
|
||||
for (i = 0; i < FrameMap::nof_caller_save_cpu_regs; i++) {
|
||||
for (i = 0; i < FrameMap::nof_caller_save_cpu_regs(); i++) {
|
||||
LIR_Opr opr = FrameMap::caller_save_cpu_reg_at(i);
|
||||
assert(opr->is_valid() && opr->is_register(), "FrameMap should not return invalid operands");
|
||||
assert(reg_numHi(opr) == -1, "missing addition of range for hi-register");
|
||||
|
@ -3557,7 +3557,7 @@ void RegisterVerifier::process_operations(LIR_List* ops, IntervalList* input_sta
|
|||
|
||||
// invalidate all caller save registers at calls
|
||||
if (visitor.has_call()) {
|
||||
for (j = 0; j < FrameMap::nof_caller_save_cpu_regs; j++) {
|
||||
for (j = 0; j < FrameMap::nof_caller_save_cpu_regs(); j++) {
|
||||
state_put(input_state, reg_num(FrameMap::caller_save_cpu_reg_at(j)), NULL);
|
||||
}
|
||||
for (j = 0; j < FrameMap::nof_caller_save_fpu_regs; j++) {
|
||||
|
@ -5596,7 +5596,7 @@ void LinearScanWalker::init_vars_for_alloc(Interval* cur) {
|
|||
_last_reg = pd_last_fpu_reg;
|
||||
} else {
|
||||
_first_reg = pd_first_cpu_reg;
|
||||
_last_reg = pd_last_cpu_reg;
|
||||
_last_reg = FrameMap::last_cpu_reg();
|
||||
}
|
||||
|
||||
assert(0 <= _first_reg && _first_reg < LinearScan::nof_regs, "out of range");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue