src/cpu/x86/vm/c1_CodeStubs_x86.cpp

changeset 739
dc7f315e41f7
parent 435
a61af66fc99e
child 772
9ee9cf798b59
child 797
f8199438385b
     1.1 --- a/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Tue Aug 26 15:49:40 2008 -0700
     1.2 +++ b/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Wed Aug 27 00:21:55 2008 -0700
     1.3 @@ -43,11 +43,12 @@
     1.4      __ comisd(input()->as_xmm_double_reg(),
     1.5                ExternalAddress((address)&double_zero));
     1.6    } else {
     1.7 -    __ pushl(rax);
     1.8 +    LP64_ONLY(ShouldNotReachHere());
     1.9 +    __ push(rax);
    1.10      __ ftst();
    1.11      __ fnstsw_ax();
    1.12      __ sahf();
    1.13 -    __ popl(rax);
    1.14 +    __ pop(rax);
    1.15    }
    1.16  
    1.17    Label NaN, do_return;
    1.18 @@ -61,7 +62,7 @@
    1.19  
    1.20    // input is NaN -> return 0
    1.21    __ bind(NaN);
    1.22 -  __ xorl(result()->as_register(), result()->as_register());
    1.23 +  __ xorptr(result()->as_register(), result()->as_register());
    1.24  
    1.25    __ bind(do_return);
    1.26    __ jmp(_continuation);
    1.27 @@ -139,7 +140,7 @@
    1.28  void NewInstanceStub::emit_code(LIR_Assembler* ce) {
    1.29    assert(__ rsp_offset() == 0, "frame size should be fixed");
    1.30    __ bind(_entry);
    1.31 -  __ movl(rdx, _klass_reg->as_register());
    1.32 +  __ movptr(rdx, _klass_reg->as_register());
    1.33    __ call(RuntimeAddress(Runtime1::entry_for(_stub_id)));
    1.34    ce->add_call_info_here(_info);
    1.35    ce->verify_oop_map(_info);
    1.36 @@ -306,10 +307,10 @@
    1.37      assert(_obj != noreg, "must be a valid register");
    1.38      Register tmp = rax;
    1.39      if (_obj == tmp) tmp = rbx;
    1.40 -    __ pushl(tmp);
    1.41 +    __ push(tmp);
    1.42      __ get_thread(tmp);
    1.43 -    __ cmpl(tmp, Address(_obj, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc)));
    1.44 -    __ popl(tmp);
    1.45 +    __ cmpptr(tmp, Address(_obj, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc)));
    1.46 +    __ pop(tmp);
    1.47      __ jcc(Assembler::notEqual, call_patch);
    1.48  
    1.49      // access_field patches may execute the patched code before it's
    1.50 @@ -434,7 +435,7 @@
    1.51      VMReg r_1 = args[i].first();
    1.52      if (r_1->is_stack()) {
    1.53        int st_off = r_1->reg2stack() * wordSize;
    1.54 -      __ movl (Address(rsp, st_off), r[i]);
    1.55 +      __ movptr (Address(rsp, st_off), r[i]);
    1.56      } else {
    1.57        assert(r[i] == args[i].first()->as_Register(), "Wrong register for arg ");
    1.58      }
    1.59 @@ -449,7 +450,7 @@
    1.60    ce->add_call_info_here(info());
    1.61  
    1.62  #ifndef PRODUCT
    1.63 -  __ increment(ExternalAddress((address)&Runtime1::_arraycopy_slowcase_cnt));
    1.64 +  __ incrementl(ExternalAddress((address)&Runtime1::_arraycopy_slowcase_cnt));
    1.65  #endif
    1.66  
    1.67    __ jmp(_continuation);

mercurial