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