Mercurial > hg > graal-compiler
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 } |