src/hotspot/cpu/s390/jniFastGetField_s390.cpp
author lmesnik
Wed, 11 Sep 2019 16:25:12 -0700
changeset 58093 50e1d346a126
parent 57594 61c2e3e7315d
permissions -rw-r--r--
8230830: No required ResourceMark in src/hotspot/share/prims/jvmtiImpl.cpp:JvmtiSuspendControl::print() Reviewed-by: dholmes, cjplummer, sspitsyn
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     1
/*
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     2
 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     3
 * Copyright (c) 2016 SAP SE. All rights reserved.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     4
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     5
 *
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     6
 * This code is free software; you can redistribute it and/or modify it
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     7
 * under the terms of the GNU General Public License version 2 only, as
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     8
 * published by the Free Software Foundation.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
     9
 *
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    10
 * This code is distributed in the hope that it will be useful, but WITHOUT
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    11
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    12
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    13
 * version 2 for more details (a copy is included in the LICENSE file that
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    14
 * accompanied this code).
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    15
 *
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    16
 * You should have received a copy of the GNU General Public License version
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    17
 * 2 along with this work; if not, write to the Free Software Foundation,
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    18
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    19
 *
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    20
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    21
 * or visit www.oracle.com if you need additional information or have any
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    22
 * questions.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    23
 *
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    24
 */
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    25
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    26
#include "precompiled.hpp"
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    27
#include "asm/macroAssembler.inline.hpp"
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    28
#include "gc/shared/barrierSet.hpp"
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    29
#include "gc/shared/barrierSetAssembler.hpp"
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    30
#include "memory/resourceArea.hpp"
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    31
#include "prims/jniFastGetField.hpp"
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    32
#include "prims/jvm_misc.hpp"
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    33
#include "runtime/safepoint.hpp"
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    34
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    35
// TSO ensures that loads are blocking and ordered with respect to
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    36
// to earlier loads, so we don't need LoadLoad membars.
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    37
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    38
#define __ masm->
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    39
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    40
#define BUFFER_SIZE 30*sizeof(jint)
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    41
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    42
// Common register usage:
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    43
// Z_RET/Z_FRET: result
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    44
// Z_ARG1:       jni env
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    45
// Z_ARG2:       obj
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    46
// Z_ARG3:       jfield id
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    47
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
    48
address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) {
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    49
  const char *name;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    50
  switch (type) {
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    51
    case T_BOOLEAN: name = "jni_fast_GetBooleanField"; break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    52
    case T_BYTE:    name = "jni_fast_GetByteField";    break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    53
    case T_CHAR:    name = "jni_fast_GetCharField";    break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    54
    case T_SHORT:   name = "jni_fast_GetShortField";   break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    55
    case T_INT:     name = "jni_fast_GetIntField";     break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    56
    case T_LONG:    name = "jni_fast_GetLongField";    break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    57
    case T_FLOAT:   name = "jni_fast_GetFloatField";   break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    58
    case T_DOUBLE:  name = "jni_fast_GetDoubleField";  break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    59
    default:        ShouldNotReachHere();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    60
      name = NULL;  // unreachable
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    61
  }
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    62
  ResourceMark rm;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    63
  BufferBlob* blob = BufferBlob::create(name, BUFFER_SIZE);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    64
  CodeBuffer cbuf(blob);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    65
  MacroAssembler* masm = new MacroAssembler(&cbuf);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    66
  address fast_entry = __ pc();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    67
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    68
  Label slow;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    69
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    70
  // We can only kill the remaining volatile registers.
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    71
  const Register Rcounter = Z_ARG4,
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    72
                 Robj     = Z_R1_scratch,
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    73
                 Rtmp     = Z_R0_scratch;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    74
  __ load_const_optimized(Robj, SafepointSynchronize::safepoint_counter_addr());
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    75
  __ z_lg(Rcounter, Address(Robj));
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    76
  __ z_tmll(Rcounter, 1);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    77
  __ z_brnaz(slow);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    78
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    79
  if (JvmtiExport::can_post_field_access()) {
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    80
    // Check to see if a field access watch has been set before we
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    81
    // take the fast path.
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    82
    __ load_const_optimized(Robj, JvmtiExport::get_field_access_count_addr());
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    83
    __ z_lt(Robj, Address(Robj));
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    84
    __ z_brne(slow);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    85
  }
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    86
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    87
  __ z_lgr(Robj, Z_ARG2);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    88
  BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    89
  bs->try_resolve_jobject_in_native(masm, Z_ARG1, Robj, Rtmp, slow);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    90
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    91
  __ z_srlg(Rtmp, Z_ARG3, 2); // offset
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    92
  __ z_agr(Robj, Rtmp);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    93
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    94
  assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    95
  speculative_load_pclist[count] = __ pc();   // Used by the segfault handler
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    96
  bool is_fp = false;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    97
  switch (type) {
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    98
    case T_BOOLEAN: __ z_llgc(Rtmp, Address(Robj)); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
    99
    case T_BYTE:    __ z_lgb( Rtmp, Address(Robj)); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   100
    case T_CHAR:    __ z_llgh(Rtmp, Address(Robj)); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   101
    case T_SHORT:   __ z_lgh( Rtmp, Address(Robj)); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   102
    case T_INT:     __ z_lgf( Rtmp, Address(Robj)); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   103
    case T_LONG:    __ z_lg(  Rtmp, Address(Robj)); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   104
    case T_FLOAT:   __ mem2freg_opt(Z_FRET, Address(Robj), false); is_fp = true; break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   105
    case T_DOUBLE:  __ mem2freg_opt(Z_FRET, Address(Robj), true ); is_fp = true; break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   106
    default:        ShouldNotReachHere();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   107
  }
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   108
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   109
  __ load_const_optimized(Robj, SafepointSynchronize::safepoint_counter_addr());
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   110
  __ z_cg(Rcounter, Address(Robj));
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   111
  __ z_brne(slow);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   112
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   113
  if (!is_fp) {
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   114
    __ z_lgr(Z_RET, Rtmp);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   115
  }
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   116
  __ z_br(Z_R14);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   117
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   118
  slowcase_entry_pclist[count++] = __ pc();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   119
  __ bind(slow);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   120
  address slow_case_addr;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   121
  switch (type) {
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   122
    case T_BOOLEAN: slow_case_addr = jni_GetBooleanField_addr(); break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   123
    case T_BYTE:    slow_case_addr = jni_GetByteField_addr();    break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   124
    case T_CHAR:    slow_case_addr = jni_GetCharField_addr();    break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   125
    case T_SHORT:   slow_case_addr = jni_GetShortField_addr();   break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   126
    case T_INT:     slow_case_addr = jni_GetIntField_addr();     break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   127
    case T_LONG:    slow_case_addr = jni_GetLongField_addr();    break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   128
    case T_FLOAT:   slow_case_addr = jni_GetFloatField_addr();   break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   129
    case T_DOUBLE:  slow_case_addr = jni_GetDoubleField_addr();  break;
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   130
    default:        ShouldNotReachHere();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   131
      slow_case_addr = NULL;  // unreachable
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   132
  }
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   133
  __ load_const_optimized(Robj, slow_case_addr);
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   134
  __ z_br(Robj); // tail call
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   135
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   136
  __ flush();
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   137
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   138
  return fast_entry;
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   139
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   140
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   141
address JNI_FastGetField::generate_fast_get_boolean_field() {
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   142
  return generate_fast_get_int_field0(T_BOOLEAN);
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   143
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   144
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   145
address JNI_FastGetField::generate_fast_get_byte_field() {
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   146
  return generate_fast_get_int_field0(T_BYTE);
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   147
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   148
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   149
address JNI_FastGetField::generate_fast_get_char_field() {
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   150
  return generate_fast_get_int_field0(T_CHAR);
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   151
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   152
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   153
address JNI_FastGetField::generate_fast_get_short_field() {
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   154
  return generate_fast_get_int_field0(T_SHORT);
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   155
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   156
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   157
address JNI_FastGetField::generate_fast_get_int_field() {
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   158
  return generate_fast_get_int_field0(T_INT);
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   159
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   160
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   161
address JNI_FastGetField::generate_fast_get_long_field() {
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   162
  return generate_fast_get_int_field0(T_LONG);
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   163
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   164
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   165
address JNI_FastGetField::generate_fast_get_float_field() {
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   166
  return generate_fast_get_int_field0(T_FLOAT);
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   167
}
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   168
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   169
address JNI_FastGetField::generate_fast_get_double_field() {
57594
61c2e3e7315d 8228743: [PPC64, s390] Implement FastJNIAccessors
mdoerr
parents: 47216
diff changeset
   170
  return generate_fast_get_int_field0(T_DOUBLE);
42065
6032b31e3719 8167673: [s390] The s390 port.
goetz
parents:
diff changeset
   171
}