< prev index next >

src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp

Print this page
*** 1,8 ***
  /*
!  * Copyright (c) 2004, 2020, Oracle and/or its affiliates. All rights reserved.
!  * Copyright (c) 2014, 2020, Red Hat Inc. 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,8 ---
  /*
!  * Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
!  * Copyright (c) 2014, 2021, Red Hat Inc. 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.

*** 29,10 ***
--- 29,11 ---
  #include "gc/shared/barrierSetAssembler.hpp"
  #include "memory/resourceArea.hpp"
  #include "prims/jniFastGetField.hpp"
  #include "prims/jvm_misc.hpp"
  #include "prims/jvmtiExport.hpp"
+ #include "runtime/jfieldIDWorkaround.hpp"
  #include "runtime/safepoint.hpp"
  #include "runtime/threadWXSetters.inline.hpp"
  
  #define __ masm->
  

*** 150,11 ***
  
    // Both robj and rscratch1 are clobbered by try_resolve_jobject_in_native.
    BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
    bs->try_resolve_jobject_in_native(masm, c_rarg0, robj, rscratch1, slow);
  
!   __ lsr(roffset, c_rarg2, 2);                // offset
    __ add(result, robj, roffset);
  
    assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
    speculative_load_pclist[count] = __ pc();   // Used by the segfault handler
    // Using acquire: Order JVMTI check and load of result wrt. succeeding check
--- 151,11 ---
  
    // Both robj and rscratch1 are clobbered by try_resolve_jobject_in_native.
    BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
    bs->try_resolve_jobject_in_native(masm, c_rarg0, robj, rscratch1, slow);
  
!   __ lsr(roffset, c_rarg2, jfieldIDWorkaround::offset_shift);       // offset
    __ add(result, robj, roffset);
  
    assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
    speculative_load_pclist[count] = __ pc();   // Used by the segfault handler
    // Using acquire: Order JVMTI check and load of result wrt. succeeding check
< prev index next >