< prev index next >

src/share/vm/c1/c1_LinearScan.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2005, 2016, 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) 2005, 2017, 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.
*** 1102,1111 **** --- 1102,1113 ---- if (op2->in_opr1() != op2->in_opr2() && op2->in_opr2() == opr) { assert((op2->result_opr()->is_register() || op->code() == lir_cmp) && op2->in_opr1()->is_register(), "cannot mark second operand as stack if others are not in register"); return shouldHaveRegister; } } + default: + break; } } else { // FPU stack float instruction switch (op->code()) { case lir_add:
*** 1118,1127 **** --- 1120,1131 ---- if (op2->in_opr1() != op2->in_opr2() && op2->in_opr2() == opr) { assert((op2->result_opr()->is_register() || op->code() == lir_cmp) && op2->in_opr1()->is_register(), "cannot mark second operand as stack if others are not in register"); return shouldHaveRegister; } } + default: + break; } } // We want to sometimes use logical operations on pointers, in particular in GC barriers. // Since 64bit logical operations do not current support operands on stack, we have to make sure // T_OBJECT doesn't get spilled along with T_LONG.
*** 1140,1149 **** --- 1144,1155 ---- if (op2->in_opr1() != op2->in_opr2() && op2->in_opr2() == opr) { assert((op2->result_opr()->is_register() || op->code() == lir_cmp) && op2->in_opr1()->is_register(), "cannot mark second operand as stack if others are not in register"); return shouldHaveRegister; } } + default: + break; } } #endif // X86 S390 // all other operands require a register
*** 1245,1254 **** --- 1251,1262 ---- TRACE_LINEAR_SCAN(4, tty->print_cr("operation at op_id %d: added hint from interval %d to %d", cmove->id(), from->reg_num(), to->reg_num())); } } break; } + default: + break; } } void LinearScan::build_intervals() {
*** 3025,3036 **** assert(op->as_Op1() != NULL, "move must be LIR_Op1"); LIR_Op1* move = (LIR_Op1*)op; LIR_Opr src = move->in_opr(); LIR_Opr dst = move->result_opr(); if (dst == src || ! !dst->is_pointer() && !src->is_pointer() && ! src->is_same_register(dst)) { instructions->at_put(j, NULL); has_dead = true; } } } --- 3033,3044 ---- assert(op->as_Op1() != NULL, "move must be LIR_Op1"); LIR_Op1* move = (LIR_Op1*)op; LIR_Opr src = move->in_opr(); LIR_Opr dst = move->result_opr(); if (dst == src || ! (!dst->is_pointer() && !src->is_pointer() && ! src->is_same_register(dst))) { instructions->at_put(j, NULL); has_dead = true; } } }
< prev index next >