Mercurial > hg > truffle
comparison src/cpu/sparc/vm/c1_Runtime1_sparc.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 | b1a2afa37ec4 |
comparison
equal
deleted
inserted
replaced
1972:f95d63e2154a | 2002:ac637b7220d1 |
---|---|
610 __ set_info("register_finalizer", dont_gc_arguments); | 610 __ set_info("register_finalizer", dont_gc_arguments); |
611 | 611 |
612 // load the klass and check the has finalizer flag | 612 // load the klass and check the has finalizer flag |
613 Label register_finalizer; | 613 Label register_finalizer; |
614 Register t = O1; | 614 Register t = O1; |
615 __ ld_ptr(O0, oopDesc::klass_offset_in_bytes(), t); | 615 __ load_klass(O0, t); |
616 __ ld(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc), t); | 616 __ ld(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc), t); |
617 __ set(JVM_ACC_HAS_FINALIZER, G3); | 617 __ set(JVM_ACC_HAS_FINALIZER, G3); |
618 __ andcc(G3, t, G0); | 618 __ andcc(G3, t, G0); |
619 __ br(Assembler::notZero, false, Assembler::pt, register_finalizer); | 619 __ br(Assembler::notZero, false, Assembler::pt, register_finalizer); |
620 __ delayed()->nop(); | 620 __ delayed()->nop(); |