src/hotspot/cpu/s390/macroAssembler_s390.cpp
changeset 50446 39ca7558bc43
parent 50162 f9fe56417050
child 50599 ecc2af326b5f
equal deleted inserted replaced
50445:bd6b78feb6a3 50446:39ca7558bc43
    32 #include "gc/shared/collectedHeap.inline.hpp"
    32 #include "gc/shared/collectedHeap.inline.hpp"
    33 #include "interpreter/interpreter.hpp"
    33 #include "interpreter/interpreter.hpp"
    34 #include "gc/shared/cardTableBarrierSet.hpp"
    34 #include "gc/shared/cardTableBarrierSet.hpp"
    35 #include "memory/resourceArea.hpp"
    35 #include "memory/resourceArea.hpp"
    36 #include "memory/universe.hpp"
    36 #include "memory/universe.hpp"
       
    37 #include "oops/accessDecorators.hpp"
    37 #include "oops/compressedOops.inline.hpp"
    38 #include "oops/compressedOops.inline.hpp"
    38 #include "oops/klass.inline.hpp"
    39 #include "oops/klass.inline.hpp"
    39 #include "opto/compile.hpp"
    40 #include "opto/compile.hpp"
    40 #include "opto/intrinsicnode.hpp"
    41 #include "opto/intrinsicnode.hpp"
    41 #include "opto/matcher.hpp"
    42 #include "opto/matcher.hpp"
  4051                                      const Address& addr, Register val,
  4052                                      const Address& addr, Register val,
  4052                                      Register tmp1, Register tmp2, Register tmp3) {
  4053                                      Register tmp1, Register tmp2, Register tmp3) {
  4053   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
  4054   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
  4054                          ON_UNKNOWN_OOP_REF)) == 0, "unsupported decorator");
  4055                          ON_UNKNOWN_OOP_REF)) == 0, "unsupported decorator");
  4055   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
  4056   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
       
  4057   decorators = AccessInternal::decorator_fixup(decorators);
  4056   bool as_raw = (decorators & AS_RAW) != 0;
  4058   bool as_raw = (decorators & AS_RAW) != 0;
  4057   if (as_raw) {
  4059   if (as_raw) {
  4058     bs->BarrierSetAssembler::store_at(this, decorators, type,
  4060     bs->BarrierSetAssembler::store_at(this, decorators, type,
  4059                                       addr, val,
  4061                                       addr, val,
  4060                                       tmp1, tmp2, tmp3);
  4062                                       tmp1, tmp2, tmp3);
  4069                                     const Address& addr, Register dst,
  4071                                     const Address& addr, Register dst,
  4070                                     Register tmp1, Register tmp2, Label *is_null) {
  4072                                     Register tmp1, Register tmp2, Label *is_null) {
  4071   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
  4073   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
  4072                          ON_PHANTOM_OOP_REF | ON_WEAK_OOP_REF)) == 0, "unsupported decorator");
  4074                          ON_PHANTOM_OOP_REF | ON_WEAK_OOP_REF)) == 0, "unsupported decorator");
  4073   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
  4075   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
       
  4076   decorators = AccessInternal::decorator_fixup(decorators);
  4074   bool as_raw = (decorators & AS_RAW) != 0;
  4077   bool as_raw = (decorators & AS_RAW) != 0;
  4075   if (as_raw) {
  4078   if (as_raw) {
  4076     bs->BarrierSetAssembler::load_at(this, decorators, type,
  4079     bs->BarrierSetAssembler::load_at(this, decorators, type,
  4077                                      addr, dst,
  4080                                      addr, dst,
  4078                                      tmp1, tmp2, is_null);
  4081                                      tmp1, tmp2, is_null);