comparison src/cpu/sparc/vm/assembler_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 2f644f85485d
comparison
equal deleted inserted replaced
1972:f95d63e2154a 2002:ac637b7220d1
907 mov(L4, G4); // restore G4 907 mov(L4, G4); // restore G4
908 mov(L5, G5_method); // restore G5_method 908 mov(L5, G5_method); // restore G5_method
909 #if defined(COMPILER2) && !defined(_LP64) 909 #if defined(COMPILER2) && !defined(_LP64)
910 // Save & restore possible 64-bit Long arguments in G-regs 910 // Save & restore possible 64-bit Long arguments in G-regs
911 sllx(L0,32,G2); // Move old high G1 bits high in G2 911 sllx(L0,32,G2); // Move old high G1 bits high in G2
912 sllx(G1, 0,G1); // Clear current high G1 bits 912 srl(G1, 0,G1); // Clear current high G1 bits
913 or3 (G1,G2,G1); // Recover 64-bit G1 913 or3 (G1,G2,G1); // Recover 64-bit G1
914 sllx(L6,32,G2); // Move old high G4 bits high in G2 914 sllx(L6,32,G2); // Move old high G4 bits high in G2
915 sllx(G4, 0,G4); // Clear current high G4 bits 915 srl(G4, 0,G4); // Clear current high G4 bits
916 or3 (G4,G2,G4); // Recover 64-bit G4 916 or3 (G4,G2,G4); // Recover 64-bit G4
917 #endif 917 #endif
918 restore(O0, 0, G2_thread); 918 restore(O0, 0, G2_thread);
919 } 919 }
920 } 920 }