Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 848:fe95187e8882
6859338: amd64 native unverified entry point pushes values before implicit null check
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Mon, 13 Jul 2009 14:58:17 -0700 |
parents | 69aefafe69c1 |
children | e66fd840cb6b |
line wrap: on
line diff
--- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Thu Jul 02 16:18:19 2009 -0700 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Mon Jul 13 14:58:17 2009 -0700 @@ -1302,22 +1302,19 @@ const Register ic_reg = rax; const Register receiver = j_rarg0; - const Register tmp = rdx; Label ok; Label exception_pending; + assert_different_registers(ic_reg, receiver, rscratch1); __ verify_oop(receiver); - __ push(tmp); // spill (any other registers free here???) - __ load_klass(tmp, receiver); - __ cmpq(ic_reg, tmp); + __ load_klass(rscratch1, receiver); + __ cmpq(ic_reg, rscratch1); __ jcc(Assembler::equal, ok); - __ pop(tmp); __ jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub())); __ bind(ok); - __ pop(tmp); // Verified entry point must be aligned __ align(8);