src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp
changeset 50446 39ca7558bc43
parent 50162 f9fe56417050
child 50599 ecc2af326b5f
equal deleted inserted replaced
50445:bd6b78feb6a3 50446:39ca7558bc43
    30 #include "asm/macroAssembler.hpp"
    30 #include "asm/macroAssembler.hpp"
    31 #include "asm/codeBuffer.hpp"
    31 #include "asm/codeBuffer.hpp"
    32 #include "code/codeCache.hpp"
    32 #include "code/codeCache.hpp"
    33 #include "gc/shared/barrierSet.hpp"
    33 #include "gc/shared/barrierSet.hpp"
    34 #include "gc/shared/barrierSetAssembler.hpp"
    34 #include "gc/shared/barrierSetAssembler.hpp"
       
    35 #include "oops/accessDecorators.hpp"
    35 #include "runtime/safepointMechanism.hpp"
    36 #include "runtime/safepointMechanism.hpp"
    36 
    37 
    37 inline bool MacroAssembler::is_ld_largeoffset(address a) {
    38 inline bool MacroAssembler::is_ld_largeoffset(address a) {
    38   const int inst1 = *(int *)a;
    39   const int inst1 = *(int *)a;
    39   const int inst2 = *(int *)(a+4);
    40   const int inst2 = *(int *)(a+4);
   330                                             Register tmp1, Register tmp2, Register tmp3, bool needs_frame) {
   331                                             Register tmp1, Register tmp2, Register tmp3, bool needs_frame) {
   331   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
   332   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
   332                          ON_UNKNOWN_OOP_REF)) == 0, "unsupported decorator");
   333                          ON_UNKNOWN_OOP_REF)) == 0, "unsupported decorator");
   333   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
   334   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
   334   bool as_raw = (decorators & AS_RAW) != 0;
   335   bool as_raw = (decorators & AS_RAW) != 0;
       
   336   decorators = AccessInternal::decorator_fixup(decorators);
   335   if (as_raw) {
   337   if (as_raw) {
   336     bs->BarrierSetAssembler::store_at(this, decorators, type,
   338     bs->BarrierSetAssembler::store_at(this, decorators, type,
   337                                       base, ind_or_offs, val,
   339                                       base, ind_or_offs, val,
   338                                       tmp1, tmp2, tmp3, needs_frame);
   340                                       tmp1, tmp2, tmp3, needs_frame);
   339   } else {
   341   } else {
   347                                            Register base, RegisterOrConstant ind_or_offs, Register dst,
   349                                            Register base, RegisterOrConstant ind_or_offs, Register dst,
   348                                            Register tmp1, Register tmp2, bool needs_frame, Label *L_handle_null) {
   350                                            Register tmp1, Register tmp2, bool needs_frame, Label *L_handle_null) {
   349   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
   351   assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL |
   350                          ON_PHANTOM_OOP_REF | ON_WEAK_OOP_REF)) == 0, "unsupported decorator");
   352                          ON_PHANTOM_OOP_REF | ON_WEAK_OOP_REF)) == 0, "unsupported decorator");
   351   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
   353   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
       
   354   decorators = AccessInternal::decorator_fixup(decorators);
   352   bool as_raw = (decorators & AS_RAW) != 0;
   355   bool as_raw = (decorators & AS_RAW) != 0;
   353   if (as_raw) {
   356   if (as_raw) {
   354     bs->BarrierSetAssembler::load_at(this, decorators, type,
   357     bs->BarrierSetAssembler::load_at(this, decorators, type,
   355                                      base, ind_or_offs, dst,
   358                                      base, ind_or_offs, dst,
   356                                      tmp1, tmp2, needs_frame, L_handle_null);
   359                                      tmp1, tmp2, needs_frame, L_handle_null);