391 void do_root (Instruction* instr);
392 void walk (Instruction* instr);
393
394 void bind_block_entry(BlockBegin* block);
395 void start_block(BlockBegin* block);
396
397 LIR_Opr new_register(BasicType type);
398 LIR_Opr new_register(Value value) { return new_register(as_BasicType(value->type())); }
399 LIR_Opr new_register(ValueType* type) { return new_register(as_BasicType(type)); }
400
401 // returns a register suitable for doing pointer math
402 LIR_Opr new_pointer_register() {
403 #ifdef _LP64
404 return new_register(T_LONG);
405 #else
406 return new_register(T_INT);
407 #endif
408 }
409
410 static LIR_Condition lir_cond(If::Condition cond) {
411 LIR_Condition l;
412 switch (cond) {
413 case If::eql: l = lir_cond_equal; break;
414 case If::neq: l = lir_cond_notEqual; break;
415 case If::lss: l = lir_cond_less; break;
416 case If::leq: l = lir_cond_lessEqual; break;
417 case If::geq: l = lir_cond_greaterEqual; break;
418 case If::gtr: l = lir_cond_greater; break;
419 case If::aeq: l = lir_cond_aboveEqual; break;
420 case If::beq: l = lir_cond_belowEqual; break;
421 };
422 return l;
423 }
424
425 #ifdef __SOFTFP__
426 void do_soft_float_compare(If *x);
427 #endif // __SOFTFP__
428
429 void init();
430
431 SwitchRangeArray* create_lookup_ranges(TableSwitch* x);
|
391 void do_root (Instruction* instr);
392 void walk (Instruction* instr);
393
394 void bind_block_entry(BlockBegin* block);
395 void start_block(BlockBegin* block);
396
397 LIR_Opr new_register(BasicType type);
398 LIR_Opr new_register(Value value) { return new_register(as_BasicType(value->type())); }
399 LIR_Opr new_register(ValueType* type) { return new_register(as_BasicType(type)); }
400
401 // returns a register suitable for doing pointer math
402 LIR_Opr new_pointer_register() {
403 #ifdef _LP64
404 return new_register(T_LONG);
405 #else
406 return new_register(T_INT);
407 #endif
408 }
409
410 static LIR_Condition lir_cond(If::Condition cond) {
411 LIR_Condition l = lir_cond_unknown;
412 switch (cond) {
413 case If::eql: l = lir_cond_equal; break;
414 case If::neq: l = lir_cond_notEqual; break;
415 case If::lss: l = lir_cond_less; break;
416 case If::leq: l = lir_cond_lessEqual; break;
417 case If::geq: l = lir_cond_greaterEqual; break;
418 case If::gtr: l = lir_cond_greater; break;
419 case If::aeq: l = lir_cond_aboveEqual; break;
420 case If::beq: l = lir_cond_belowEqual; break;
421 };
422 return l;
423 }
424
425 #ifdef __SOFTFP__
426 void do_soft_float_compare(If *x);
427 #endif // __SOFTFP__
428
429 void init();
430
431 SwitchRangeArray* create_lookup_ranges(TableSwitch* x);
|