< prev index next >

src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 105,116 **** ((src->is_double_fpu() || dst->is_double_fpu()) && op1->move_kind() != lir_move_normal)) { return false; } if (UseCompressedOops) { ! if (dst->is_address() && !dst->is_stack() && (dst->type() == T_OBJECT || dst->type() == T_ARRAY)) return false; ! if (src->is_address() && !src->is_stack() && (src->type() == T_OBJECT || src->type() == T_ARRAY)) return false; } if (UseCompressedClassPointers) { if (src->is_address() && !src->is_stack() && src->type() == T_ADDRESS && src->as_address_ptr()->disp() == oopDesc::klass_offset_in_bytes()) return false; --- 105,116 ---- ((src->is_double_fpu() || dst->is_double_fpu()) && op1->move_kind() != lir_move_normal)) { return false; } if (UseCompressedOops) { ! if (dst->is_address() && !dst->is_stack() && is_reference_type(dst->type())) return false; ! if (src->is_address() && !src->is_stack() && is_reference_type(src->type())) return false; } if (UseCompressedClassPointers) { if (src->is_address() && !src->is_stack() && src->type() == T_ADDRESS && src->as_address_ptr()->disp() == oopDesc::klass_offset_in_bytes()) return false;
*** 726,736 **** assert(!unaligned, "can't handle this"); // for offsets larger than a simm13 we setup the offset in O7 __ set(offset, O7); store_offset = store(from_reg, base, O7, type, wide); } else { ! if (type == T_ARRAY || type == T_OBJECT) { __ verify_oop(from_reg->as_register()); } store_offset = code_offset(); switch (type) { case T_BOOLEAN: // fall through --- 726,736 ---- assert(!unaligned, "can't handle this"); // for offsets larger than a simm13 we setup the offset in O7 __ set(offset, O7); store_offset = store(from_reg, base, O7, type, wide); } else { ! if (is_reference_type(type)) { __ verify_oop(from_reg->as_register()); } store_offset = code_offset(); switch (type) { case T_BOOLEAN: // fall through
*** 787,797 **** return store_offset; } int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicType type, bool wide) { ! if (type == T_ARRAY || type == T_OBJECT) { __ verify_oop(from_reg->as_register()); } int store_offset = code_offset(); switch (type) { case T_BOOLEAN: // fall through --- 787,797 ---- return store_offset; } int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicType type, bool wide) { ! if (is_reference_type(type)) { __ verify_oop(from_reg->as_register()); } int store_offset = code_offset(); switch (type) { case T_BOOLEAN: // fall through
*** 887,897 **** } break; } default : ShouldNotReachHere(); } ! if (type == T_ARRAY || type == T_OBJECT) { __ verify_oop(to_reg->as_register()); } } return load_offset; } --- 887,897 ---- } break; } default : ShouldNotReachHere(); } ! if (is_reference_type(type)) { __ verify_oop(to_reg->as_register()); } } return load_offset; }
*** 922,932 **** case T_LONG : __ ldx(base, disp, to_reg->as_register_lo()); break; default : ShouldNotReachHere(); } ! if (type == T_ARRAY || type == T_OBJECT) { __ verify_oop(to_reg->as_register()); } return load_offset; } --- 922,932 ---- case T_LONG : __ ldx(base, disp, to_reg->as_register_lo()); break; default : ShouldNotReachHere(); } ! if (is_reference_type(type)) { __ verify_oop(to_reg->as_register()); } return load_offset; }
*** 1357,1367 **** __ mov(from_reg->as_register(), to_reg->as_register()); } } else { ShouldNotReachHere(); } ! if (to_reg->type() == T_OBJECT || to_reg->type() == T_ARRAY) { __ verify_oop(to_reg->as_register()); } } void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type, --- 1357,1367 ---- __ mov(from_reg->as_register(), to_reg->as_register()); } } else { ShouldNotReachHere(); } ! if (is_reference_type(to_reg->type())) { __ verify_oop(to_reg->as_register()); } } void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type,
*** 2293,2304 **** op->tmp4()->as_register() == O1 && op->klass()->as_register() == G5, "must be"); __ signx(op->len()->as_register()); if (UseSlowPath || ! (!UseFastNewObjectArray && (op->type() == T_OBJECT || op->type() == T_ARRAY)) || ! (!UseFastNewTypeArray && (op->type() != T_OBJECT && op->type() != T_ARRAY))) { __ br(Assembler::always, false, Assembler::pt, *op->stub()->entry()); __ delayed()->nop(); } else { __ allocate_array(op->obj()->as_register(), op->len()->as_register(), --- 2293,2304 ---- op->tmp4()->as_register() == O1 && op->klass()->as_register() == G5, "must be"); __ signx(op->len()->as_register()); if (UseSlowPath || ! (!UseFastNewObjectArray && is_reference_type(op->type())) || ! (!UseFastNewTypeArray && !is_reference_type(op->type()))) { __ br(Assembler::always, false, Assembler::pt, *op->stub()->entry()); __ delayed()->nop(); } else { __ allocate_array(op->obj()->as_register(), op->len()->as_register(),
< prev index next >