1882 void internal_sethi(const AddressLiteral& addrlit, Register d, bool ForceRelocatable); |
1882 void internal_sethi(const AddressLiteral& addrlit, Register d, bool ForceRelocatable); |
1883 public: |
1883 public: |
1884 void sethi(const AddressLiteral& addrlit, Register d); |
1884 void sethi(const AddressLiteral& addrlit, Register d); |
1885 void patchable_sethi(const AddressLiteral& addrlit, Register d); |
1885 void patchable_sethi(const AddressLiteral& addrlit, Register d); |
1886 |
1886 |
1887 // compute the size of a sethi/set |
1887 // compute the number of instructions for a sethi/set |
1888 static int size_of_sethi( address a, bool worst_case = false ); |
1888 static int insts_for_sethi( address a, bool worst_case = false ); |
1889 static int worst_case_size_of_set(); |
1889 static int worst_case_insts_for_set(); |
1890 |
1890 |
1891 // set may be either setsw or setuw (high 32 bits may be zero or sign) |
1891 // set may be either setsw or setuw (high 32 bits may be zero or sign) |
1892 private: |
1892 private: |
1893 void internal_set(const AddressLiteral& al, Register d, bool ForceRelocatable); |
1893 void internal_set(const AddressLiteral& al, Register d, bool ForceRelocatable); |
|
1894 static int insts_for_internal_set(intptr_t value); |
1894 public: |
1895 public: |
1895 void set(const AddressLiteral& addrlit, Register d); |
1896 void set(const AddressLiteral& addrlit, Register d); |
1896 void set(intptr_t value, Register d); |
1897 void set(intptr_t value, Register d); |
1897 void set(address addr, Register d, RelocationHolder const& rspec); |
1898 void set(address addr, Register d, RelocationHolder const& rspec); |
|
1899 static int insts_for_set(intptr_t value) { return insts_for_internal_set(value); } |
|
1900 |
1898 void patchable_set(const AddressLiteral& addrlit, Register d); |
1901 void patchable_set(const AddressLiteral& addrlit, Register d); |
1899 void patchable_set(intptr_t value, Register d); |
1902 void patchable_set(intptr_t value, Register d); |
1900 void set64(jlong value, Register d, Register tmp); |
1903 void set64(jlong value, Register d, Register tmp); |
1901 |
1904 static int insts_for_set64(jlong value); |
1902 // Compute size of set64. |
|
1903 static int size_of_set64(jlong value); |
|
1904 |
1905 |
1905 // sign-extend 32 to 64 |
1906 // sign-extend 32 to 64 |
1906 inline void signx( Register s, Register d ) { sra( s, G0, d); } |
1907 inline void signx( Register s, Register d ) { sra( s, G0, d); } |
1907 inline void signx( Register d ) { sra( d, G0, d); } |
1908 inline void signx( Register d ) { sra( d, G0, d); } |
1908 |
1909 |