1 /* |
1 /* |
2 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
116 __ popa(); |
116 __ popa(); |
117 } |
117 } |
118 |
118 |
119 void G1BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
119 void G1BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
120 Register dst, Address src, Register tmp1, Register tmp_thread) { |
120 Register dst, Address src, Register tmp1, Register tmp_thread) { |
121 bool on_oop = type == T_OBJECT || type == T_ARRAY; |
121 bool on_oop = is_reference_type(type); |
122 bool on_weak = (decorators & ON_WEAK_OOP_REF) != 0; |
122 bool on_weak = (decorators & ON_WEAK_OOP_REF) != 0; |
123 bool on_phantom = (decorators & ON_PHANTOM_OOP_REF) != 0; |
123 bool on_phantom = (decorators & ON_PHANTOM_OOP_REF) != 0; |
124 bool on_reference = on_weak || on_phantom; |
124 bool on_reference = on_weak || on_phantom; |
125 ModRefBarrierSetAssembler::load_at(masm, decorators, type, dst, src, tmp1, tmp_thread); |
125 ModRefBarrierSetAssembler::load_at(masm, decorators, type, dst, src, tmp1, tmp_thread); |
126 if (on_oop && on_reference) { |
126 if (on_oop && on_reference) { |