293
294 jdouble LIRItem::get_jdouble_constant() const {
295 assert(is_constant() && value() != NULL, "");
296 assert(type()->as_DoubleConstant() != NULL, "type check");
297 return type()->as_DoubleConstant()->value();
298 }
299
300
301 jlong LIRItem::get_jlong_constant() const {
302 assert(is_constant() && value() != NULL, "");
303 assert(type()->as_LongConstant() != NULL, "type check");
304 return type()->as_LongConstant()->value();
305 }
306
307
308
309 //--------------------------------------------------------------
310
311
312 void LIRGenerator::init() {
313 _bs = Universe::heap()->barrier_set();
314 }
315
316
317 void LIRGenerator::block_do_prolog(BlockBegin* block) {
318 #ifndef PRODUCT
319 if (PrintIRWithLIR) {
320 block->print();
321 }
322 #endif
323
324 // set up the list of LIR instructions
325 assert(block->lir() == NULL, "LIR list already computed for this block");
326 _lir = new LIR_List(compilation(), block);
327 block->set_lir(_lir);
328
329 __ branch_destination(block->label());
330
331 if (LIRTraceExecution &&
332 Compilation::current()->hir()->start()->block_id() != block->block_id() &&
333 !block->is_set(BlockBegin::exception_entry_flag)) {
|
293
294 jdouble LIRItem::get_jdouble_constant() const {
295 assert(is_constant() && value() != NULL, "");
296 assert(type()->as_DoubleConstant() != NULL, "type check");
297 return type()->as_DoubleConstant()->value();
298 }
299
300
301 jlong LIRItem::get_jlong_constant() const {
302 assert(is_constant() && value() != NULL, "");
303 assert(type()->as_LongConstant() != NULL, "type check");
304 return type()->as_LongConstant()->value();
305 }
306
307
308
309 //--------------------------------------------------------------
310
311
312 void LIRGenerator::init() {
313 _bs = GC::gc()->heap()->barrier_set();
314 }
315
316
317 void LIRGenerator::block_do_prolog(BlockBegin* block) {
318 #ifndef PRODUCT
319 if (PrintIRWithLIR) {
320 block->print();
321 }
322 #endif
323
324 // set up the list of LIR instructions
325 assert(block->lir() == NULL, "LIR list already computed for this block");
326 _lir = new LIR_List(compilation(), block);
327 block->set_lir(_lir);
328
329 __ branch_destination(block->label());
330
331 if (LIRTraceExecution &&
332 Compilation::current()->hir()->start()->block_id() != block->block_id() &&
333 !block->is_set(BlockBegin::exception_entry_flag)) {
|