Mercurial > hg > graal-compiler
comparison src/share/vm/asm/assembler.hpp @ 7430:d02120b7a34f
8004250: replace AbstractAssembler a_byte/a_long with emit_int8/emit_int32
Reviewed-by: jrose, kvn, twisti
Contributed-by: Morris Meyer <morris.meyer@oracle.com>
author | twisti |
---|---|
date | Thu, 20 Dec 2012 18:53:44 -0800 |
parents | c4bd2eccea46 |
children | ffa87474d7a4 |
comparison
equal
deleted
inserted
replaced
7429:a46457045d66 | 7430:d02120b7a34f |
---|---|
214 | 214 |
215 bool is8bit(int x) const { return -0x80 <= x && x < 0x80; } | 215 bool is8bit(int x) const { return -0x80 <= x && x < 0x80; } |
216 bool isByte(int x) const { return 0 <= x && x < 0x100; } | 216 bool isByte(int x) const { return 0 <= x && x < 0x100; } |
217 bool isShiftCount(int x) const { return 0 <= x && x < 32; } | 217 bool isShiftCount(int x) const { return 0 <= x && x < 32; } |
218 | 218 |
219 void emit_int8( int8_t x) { code_section()->emit_int8( x); } | |
220 void emit_int16( int16_t x) { code_section()->emit_int16( x); } | |
221 void emit_int32( int32_t x) { code_section()->emit_int32( x); } | |
222 void emit_int64( int64_t x) { code_section()->emit_int64( x); } | |
223 | |
224 void emit_float( jfloat x) { code_section()->emit_float( x); } | |
225 void emit_double( jdouble x) { code_section()->emit_double( x); } | |
226 void emit_address(address x) { code_section()->emit_address(x); } | |
227 | |
228 void emit_byte(int x) { emit_int8 (x); } // deprecated | |
229 void emit_long(jint x) { emit_int32(x); } // deprecated | 219 void emit_long(jint x) { emit_int32(x); } // deprecated |
230 | 220 |
231 // Instruction boundaries (required when emitting relocatable values). | 221 // Instruction boundaries (required when emitting relocatable values). |
232 class InstructionMark: public StackObj { | 222 class InstructionMark: public StackObj { |
233 private: | 223 private: |
281 // Creation | 271 // Creation |
282 AbstractAssembler(CodeBuffer* code); | 272 AbstractAssembler(CodeBuffer* code); |
283 | 273 |
284 // ensure buf contains all code (call this before using/copying the code) | 274 // ensure buf contains all code (call this before using/copying the code) |
285 void flush(); | 275 void flush(); |
276 | |
277 void emit_int8( int8_t x) { code_section()->emit_int8( x); } | |
278 void emit_int16( int16_t x) { code_section()->emit_int16( x); } | |
279 void emit_int32( int32_t x) { code_section()->emit_int32( x); } | |
280 void emit_int64( int64_t x) { code_section()->emit_int64( x); } | |
281 | |
282 void emit_float( jfloat x) { code_section()->emit_float( x); } | |
283 void emit_double( jdouble x) { code_section()->emit_double( x); } | |
284 void emit_address(address x) { code_section()->emit_address(x); } | |
286 | 285 |
287 // min and max values for signed immediate ranges | 286 // min and max values for signed immediate ranges |
288 static int min_simm(int nbits) { return -(intptr_t(1) << (nbits - 1)) ; } | 287 static int min_simm(int nbits) { return -(intptr_t(1) << (nbits - 1)) ; } |
289 static int max_simm(int nbits) { return (intptr_t(1) << (nbits - 1)) - 1; } | 288 static int max_simm(int nbits) { return (intptr_t(1) << (nbits - 1)) - 1; } |
290 | 289 |
321 address inst_mark() const { return code_section()->mark(); } | 320 address inst_mark() const { return code_section()->mark(); } |
322 void set_inst_mark() { code_section()->set_mark(); } | 321 void set_inst_mark() { code_section()->set_mark(); } |
323 void clear_inst_mark() { code_section()->clear_mark(); } | 322 void clear_inst_mark() { code_section()->clear_mark(); } |
324 | 323 |
325 // Constants in code | 324 // Constants in code |
326 void a_byte(int x); | |
327 void a_long(jint x); | |
328 void relocate(RelocationHolder const& rspec, int format = 0) { | 325 void relocate(RelocationHolder const& rspec, int format = 0) { |
329 assert(!pd_check_instruction_mark() | 326 assert(!pd_check_instruction_mark() |
330 || inst_mark() == NULL || inst_mark() == code_section()->end(), | 327 || inst_mark() == NULL || inst_mark() == code_section()->end(), |
331 "call relocate() between instructions"); | 328 "call relocate() between instructions"); |
332 code_section()->relocate(code_section()->end(), rspec, format); | 329 code_section()->relocate(code_section()->end(), rspec, format); |