Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_Runtime1_x86.cpp @ 2002:ac637b7220d1
6985015: C1 needs to support compressed oops
Summary: This change implements compressed oops for C1 for x64 and sparc. The changes are mostly on the codegen level, with a few exceptions when we do access things outside of the heap that are uncompressed from the IR. Compressed oops are now also enabled with tiered.
Reviewed-by: twisti, kvn, never, phh
author | iveresov |
---|---|
date | Tue, 30 Nov 2010 23:23:40 -0800 |
parents | f95d63e2154a |
children | 06f017f7daa7 b1a2afa37ec4 |
comparison
equal
deleted
inserted
replaced
1972:f95d63e2154a | 2002:ac637b7220d1 |
---|---|
1259 #endif // _LP64 | 1259 #endif // _LP64 |
1260 | 1260 |
1261 // load the klass and check the has finalizer flag | 1261 // load the klass and check the has finalizer flag |
1262 Label register_finalizer; | 1262 Label register_finalizer; |
1263 Register t = rsi; | 1263 Register t = rsi; |
1264 __ movptr(t, Address(rax, oopDesc::klass_offset_in_bytes())); | 1264 __ load_klass(t, rax); |
1265 __ movl(t, Address(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc))); | 1265 __ movl(t, Address(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc))); |
1266 __ testl(t, JVM_ACC_HAS_FINALIZER); | 1266 __ testl(t, JVM_ACC_HAS_FINALIZER); |
1267 __ jcc(Assembler::notZero, register_finalizer); | 1267 __ jcc(Assembler::notZero, register_finalizer); |
1268 __ ret(0); | 1268 __ ret(0); |
1269 | 1269 |