1394 1395 1396 void MacroAssembler::untested(const char* what) { 1397 // We must be able to turn interactive prompting off 1398 // in order to run automated test scripts on the VM 1399 // Use the flag ShowMessageBoxOnError 1400 1401 const char* b = NULL; 1402 { 1403 ResourceMark rm; 1404 stringStream ss; 1405 ss.print("untested: %s", what); 1406 b = code_string(ss.as_string()); 1407 } 1408 if (ShowMessageBoxOnError) { STOP(b); } 1409 else { warn(b); } 1410 } 1411 1412 1413 void MacroAssembler::unimplemented(const char* what) { 1414 char* b = new char[1024]; 1415 jio_snprintf(b, 1024, "unimplemented: %s", what); 1416 stop(b); 1417 } 1418 1419 1420 void MacroAssembler::stop_subroutine() { 1421 RegistersForDebugging::save_registers(this); 1422 1423 // for the sake of the debugger, stick a PC on the current frame 1424 // (this assumes that the caller has performed an extra "save") 1425 mov(I7, L7); 1426 add(O7, -7 * BytesPerInt, I7); 1427 1428 save_frame(); // one more save to free up another O7 register 1429 mov(I0, O1); // addr of reg save area 1430 1431 // We expect pointer to message in I1. Caller must set it up in O1 1432 mov(I1, O0); // get msg 1433 call (CAST_FROM_FN_PTR(address, MacroAssembler::debug), relocInfo::runtime_call_type); 1434 delayed()->nop(); 1435 1436 restore(); | 1394 1395 1396 void MacroAssembler::untested(const char* what) { 1397 // We must be able to turn interactive prompting off 1398 // in order to run automated test scripts on the VM 1399 // Use the flag ShowMessageBoxOnError 1400 1401 const char* b = NULL; 1402 { 1403 ResourceMark rm; 1404 stringStream ss; 1405 ss.print("untested: %s", what); 1406 b = code_string(ss.as_string()); 1407 } 1408 if (ShowMessageBoxOnError) { STOP(b); } 1409 else { warn(b); } 1410 } 1411 1412 1413 void MacroAssembler::unimplemented(const char* what) { 1414 const char* buf = NULL; 1415 { 1416 ResourceMark rm; 1417 stringStream ss; 1418 ss.print("unimplemented: %s", what); 1419 buf = code_string(ss.as_string()); 1420 } 1421 stop(buf); 1422 } 1423 1424 1425 void MacroAssembler::stop_subroutine() { 1426 RegistersForDebugging::save_registers(this); 1427 1428 // for the sake of the debugger, stick a PC on the current frame 1429 // (this assumes that the caller has performed an extra "save") 1430 mov(I7, L7); 1431 add(O7, -7 * BytesPerInt, I7); 1432 1433 save_frame(); // one more save to free up another O7 register 1434 mov(I0, O1); // addr of reg save area 1435 1436 // We expect pointer to message in I1. Caller must set it up in O1 1437 mov(I1, O0); // get msg 1438 call (CAST_FROM_FN_PTR(address, MacroAssembler::debug), relocInfo::runtime_call_type); 1439 delayed()->nop(); 1440 1441 restore(); |