< prev index next >

src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp

Print this page
@@ -587,11 +587,11 @@
    bind(zf_correct);
  #endif
    // C2 uses the value of ZF to determine the continuation.
  }
  
- static void abort_verify_int_in_range(uint idx, jint val, jint lo, jint hi) {
+ void C2_MacroAssembler::abort_verify_int_in_range(uint idx, jint val, jint lo, jint hi) {
    fatal("Invalid CastII, idx: %u, val: %d, lo: %d, hi: %d", idx, val, lo, hi);
  }
  
  static void reconstruct_frame_pointer_helper(MacroAssembler* masm, Register dst) {
    const int framesize = Compile::current()->output()->frame_size_in_bytes();

@@ -650,11 +650,11 @@
    hlt();
    bind(succeed);
    BLOCK_COMMENT("} // CastII");
  }
  
- static void abort_verify_long_in_range(uint idx, jlong val, jlong lo, jlong hi) {
+ void C2_MacroAssembler::abort_verify_long_in_range(uint idx, jlong val, jlong lo, jlong hi) {
    fatal("Invalid CastLL, idx: %u, val: " JLONG_FORMAT ", lo: " JLONG_FORMAT ", hi: " JLONG_FORMAT, idx, val, lo, hi);
  }
  
  void C2_MacroAssembler::verify_long_in_range(uint idx, const TypeLong* t, Register val, Register tmp) {
    jlong lo = t->_lo;

@@ -3559,13 +3559,13 @@
    lea(ary1, Address(ary1, bound, Address::times(elsize)));
    subl(cnt1, bound);
    // release bound
  
    // vresult *= IntVector.fromArray(I256, power_of_31_backwards, 1);
+   lea(tmp2, ExternalAddress(StubRoutines::x86::arrays_hashcode_powers_of_31() + (0 * sizeof(jint))));
    for (int idx = 0; idx < 4; idx++) {
-     lea(tmp2, ExternalAddress(StubRoutines::x86::arrays_hashcode_powers_of_31() + ((8 * idx + 1) * sizeof(jint))));
-     arrays_hashcode_elvload(vcoef[idx], Address(tmp2, 0), T_INT);
+     arrays_hashcode_elvload(vcoef[idx], Address(tmp2, (int)((8 * idx + 1) * sizeof(jint))), T_INT);
      vpmulld(vresult[idx], vresult[idx], vcoef[idx], Assembler::AVX_256bit);
    }
    // result += vresult.reduceLanes(ADD);
    for (int idx = 0; idx < 4; idx++) {
      reduceI(Op_AddReductionVI, 256/(sizeof(jint) * 8), result, result, vresult[idx], vtmp[(idx * 2 + 0) % 4], vtmp[(idx * 2 + 1) % 4]);
< prev index next >