comparison src/share/vm/opto/output.cpp @ 1543:1a1603f975b5

Merge
author kvn
date Wed, 19 May 2010 10:22:39 -0700
parents f03d0a26bf83
children c18cbe5936b8
comparison
equal deleted inserted replaced
1542:eb79484f795f 1543:1a1603f975b5
1229 // Make sure safepoint node for polling is distinct from a call's 1229 // Make sure safepoint node for polling is distinct from a call's
1230 // return by adding a nop if needed. 1230 // return by adding a nop if needed.
1231 if (is_sfn && !is_mcall && padding == 0 && current_offset == last_call_offset ) { 1231 if (is_sfn && !is_mcall && padding == 0 && current_offset == last_call_offset ) {
1232 padding = nop_size; 1232 padding = nop_size;
1233 } 1233 }
1234 assert( labels_not_set || padding == 0, "instruction should already be aligned") 1234 assert( labels_not_set || padding == 0, "instruction should already be aligned");
1235 1235
1236 if(padding > 0) { 1236 if(padding > 0) {
1237 assert((padding % nop_size) == 0, "padding is not a multiple of NOP size"); 1237 assert((padding % nop_size) == 0, "padding is not a multiple of NOP size");
1238 int nops_cnt = padding / nop_size; 1238 int nops_cnt = padding / nop_size;
1239 MachNode *nop = new (this) MachNopNode(nops_cnt); 1239 MachNode *nop = new (this) MachNopNode(nops_cnt);
2405 if( prior_use && !edge_from_to(prior_use,n) ) { 2405 if( prior_use && !edge_from_to(prior_use,n) ) {
2406 tty->print("%s = ",OptoReg::as_VMReg(def)->name()); 2406 tty->print("%s = ",OptoReg::as_VMReg(def)->name());
2407 n->dump(); 2407 n->dump();
2408 tty->print_cr("..."); 2408 tty->print_cr("...");
2409 prior_use->dump(); 2409 prior_use->dump();
2410 assert_msg(edge_from_to(prior_use,n),msg); 2410 assert(edge_from_to(prior_use,n),msg);
2411 } 2411 }
2412 _reg_node.map(def,NULL); // Kill live USEs 2412 _reg_node.map(def,NULL); // Kill live USEs
2413 } 2413 }
2414 } 2414 }
2415 2415
2444 Node *def = n->in(i); 2444 Node *def = n->in(i);
2445 assert(def != 0, "input edge required"); 2445 assert(def != 0, "input edge required");
2446 OptoReg::Name reg_lo = _regalloc->get_reg_first(def); 2446 OptoReg::Name reg_lo = _regalloc->get_reg_first(def);
2447 OptoReg::Name reg_hi = _regalloc->get_reg_second(def); 2447 OptoReg::Name reg_hi = _regalloc->get_reg_second(def);
2448 if( OptoReg::is_valid(reg_lo) ) { 2448 if( OptoReg::is_valid(reg_lo) ) {
2449 assert_msg(!_reg_node[reg_lo] || edge_from_to(_reg_node[reg_lo],def), msg ); 2449 assert(!_reg_node[reg_lo] || edge_from_to(_reg_node[reg_lo],def), msg);
2450 _reg_node.map(reg_lo,n); 2450 _reg_node.map(reg_lo,n);
2451 } 2451 }
2452 if( OptoReg::is_valid(reg_hi) ) { 2452 if( OptoReg::is_valid(reg_hi) ) {
2453 assert_msg(!_reg_node[reg_hi] || edge_from_to(_reg_node[reg_hi],def), msg ); 2453 assert(!_reg_node[reg_hi] || edge_from_to(_reg_node[reg_hi],def), msg);
2454 _reg_node.map(reg_hi,n); 2454 _reg_node.map(reg_hi,n);
2455 } 2455 }
2456 } 2456 }
2457 2457
2458 } 2458 }