comparison src/cpu/sparc/vm/assembler_sparc.hpp @ 164:c436414a719e

6703890: Compressed Oops: add LoadNKlass node to generate narrow oops (32-bits) compare instructions Summary: Add LoadNKlass and CMoveN nodes, use CmpN and ConN nodes to generate narrow oops compare instructions. Reviewed-by: never, rasbold
author kvn
date Wed, 21 May 2008 13:46:23 -0700
parents b130b98db9cf
children feeb96a45707
comparison
equal deleted inserted replaced
163:885ed790ecf0 164:c436414a719e
1975 inline void ldbool( const Address& a, Register d, int offset = 0 ) { ldsb( a, d, offset ); } 1975 inline void ldbool( const Address& a, Register d, int offset = 0 ) { ldsb( a, d, offset ); }
1976 inline void tstbool( Register s ) { tst(s); } 1976 inline void tstbool( Register s ) { tst(s); }
1977 inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); } 1977 inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); }
1978 1978
1979 // klass oop manipulations if compressed 1979 // klass oop manipulations if compressed
1980 void load_klass(Register src_oop, Register dst); 1980 void load_klass(Register src_oop, Register klass);
1981 void store_klass(Register dst_oop, Register s1); 1981 void store_klass(Register klass, Register dst_oop);
1982 1982
1983 // oop manipulations 1983 // oop manipulations
1984 void load_heap_oop(const Address& s, Register d, int offset = 0); 1984 void load_heap_oop(const Address& s, Register d, int offset = 0);
1985 void load_heap_oop(Register s1, Register s2, Register d); 1985 void load_heap_oop(Register s1, Register s2, Register d);
1986 void load_heap_oop(Register s1, int simm13a, Register d); 1986 void load_heap_oop(Register s1, int simm13a, Register d);
2100 Address allocate_oop_address( jobject obj, Register d ); // allocate_index 2100 Address allocate_oop_address( jobject obj, Register d ); // allocate_index
2101 Address constant_oop_address( jobject obj, Register d ); // find_index 2101 Address constant_oop_address( jobject obj, Register d ); // find_index
2102 inline void set_oop ( jobject obj, Register d ); // uses allocate_oop_address 2102 inline void set_oop ( jobject obj, Register d ); // uses allocate_oop_address
2103 inline void set_oop_constant( jobject obj, Register d ); // uses constant_oop_address 2103 inline void set_oop_constant( jobject obj, Register d ); // uses constant_oop_address
2104 inline void set_oop ( Address obj_addr ); // same as load_address 2104 inline void set_oop ( Address obj_addr ); // same as load_address
2105
2106 void set_narrow_oop( jobject obj, Register d );
2105 2107
2106 // nop padding 2108 // nop padding
2107 void align(int modulus); 2109 void align(int modulus);
2108 2110
2109 // declare a safepoint 2111 // declare a safepoint