diff --git a/src/hotspot/share/c1/c1_CodeStubs.hpp b/src/hotspot/share/c1/c1_CodeStubs.hpp index 7156db4..5bf6137 100644 --- a/src/hotspot/share/c1/c1_CodeStubs.hpp +++ b/src/hotspot/share/c1/c1_CodeStubs.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 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 @@ -533,92 +533,4 @@ class ArrayCopyStub: public CodeStub { #endif // PRODUCT }; -////////////////////////////////////////////////////////////////////////////////////////// -#if INCLUDE_ALL_GCS - -// Code stubs for Garbage-First barriers. -class G1PreBarrierStub: public CodeStub { - private: - bool _do_load; - LIR_Opr _addr; - LIR_Opr _pre_val; - LIR_PatchCode _patch_code; - CodeEmitInfo* _info; - - public: - // Version that _does_ generate a load of the previous value from addr. - // addr (the address of the field to be read) must be a LIR_Address - // pre_val (a temporary register) must be a register; - G1PreBarrierStub(LIR_Opr addr, LIR_Opr pre_val, LIR_PatchCode patch_code, CodeEmitInfo* info) : - _addr(addr), _pre_val(pre_val), _do_load(true), - _patch_code(patch_code), _info(info) - { - assert(_pre_val->is_register(), "should be temporary register"); - assert(_addr->is_address(), "should be the address of the field"); - } - - // Version that _does not_ generate load of the previous value; the - // previous value is assumed to have already been loaded into pre_val. - G1PreBarrierStub(LIR_Opr pre_val) : - _addr(LIR_OprFact::illegalOpr), _pre_val(pre_val), _do_load(false), - _patch_code(lir_patch_none), _info(NULL) - { - assert(_pre_val->is_register(), "should be a register"); - } - - LIR_Opr addr() const { return _addr; } - LIR_Opr pre_val() const { return _pre_val; } - LIR_PatchCode patch_code() const { return _patch_code; } - CodeEmitInfo* info() const { return _info; } - bool do_load() const { return _do_load; } - - virtual void emit_code(LIR_Assembler* e); - virtual void visit(LIR_OpVisitState* visitor) { - if (_do_load) { - // don't pass in the code emit info since it's processed in the fast - // path - if (_info != NULL) - visitor->do_slow_case(_info); - else - visitor->do_slow_case(); - - visitor->do_input(_addr); - visitor->do_temp(_pre_val); - } else { - visitor->do_slow_case(); - visitor->do_input(_pre_val); - } - } -#ifndef PRODUCT - virtual void print_name(outputStream* out) const { out->print("G1PreBarrierStub"); } -#endif // PRODUCT -}; - -class G1PostBarrierStub: public CodeStub { - private: - LIR_Opr _addr; - LIR_Opr _new_val; - - public: - // addr (the address of the object head) and new_val must be registers. - G1PostBarrierStub(LIR_Opr addr, LIR_Opr new_val): _addr(addr), _new_val(new_val) { } - - LIR_Opr addr() const { return _addr; } - LIR_Opr new_val() const { return _new_val; } - - virtual void emit_code(LIR_Assembler* e); - virtual void visit(LIR_OpVisitState* visitor) { - // don't pass in the code emit info since it's processed in the fast path - visitor->do_slow_case(); - visitor->do_input(_addr); - visitor->do_input(_new_val); - } -#ifndef PRODUCT - virtual void print_name(outputStream* out) const { out->print("G1PostBarrierStub"); } -#endif // PRODUCT -}; - -#endif // INCLUDE_ALL_GCS -////////////////////////////////////////////////////////////////////////////////////////// - #endif // SHARE_VM_C1_C1_CODESTUBS_HPP