hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp
changeset 16368 713209c45a82
parent 15482 470d0b0c09f1
child 18095 0ca57ec93f20
equal deleted inserted replaced
16366:b54bc5cfaa6d 16368:713209c45a82
  1383     snprintf(buffer, sizeof(buffer), "verify_oop at %d", offset());
  1383     snprintf(buffer, sizeof(buffer), "verify_oop at %d", offset());
  1384     block_comment(buffer);
  1384     block_comment(buffer);
  1385   }
  1385   }
  1386 #endif
  1386 #endif
  1387 
  1387 
  1388   int len = strlen(file) + strlen(msg) + 1 + 4;
  1388   const char* real_msg = NULL;
  1389   sprintf(buffer, "%d", line);
  1389   {
  1390   len += strlen(buffer);
  1390     ResourceMark rm;
  1391   sprintf(buffer, " at offset %d ", offset());
  1391     stringStream ss;
  1392   len += strlen(buffer);
  1392     ss.print("%s at offset %d (%s:%d)", msg, offset(), file, line);
  1393   char * real_msg = new char[len];
  1393     real_msg = code_string(ss.as_string());
  1394   sprintf(real_msg, "%s%s(%s:%d)", msg, buffer, file, line);
  1394   }
  1395 
  1395 
  1396   // Call indirectly to solve generation ordering problem
  1396   // Call indirectly to solve generation ordering problem
  1397   AddressLiteral a(StubRoutines::verify_oop_subroutine_entry_address());
  1397   AddressLiteral a(StubRoutines::verify_oop_subroutine_entry_address());
  1398 
  1398 
  1399   // Make some space on stack above the current register window.
  1399   // Make some space on stack above the current register window.
  1421 
  1421 
  1422 void MacroAssembler::_verify_oop_addr(Address addr, const char* msg, const char * file, int line) {
  1422 void MacroAssembler::_verify_oop_addr(Address addr, const char* msg, const char * file, int line) {
  1423   // plausibility check for oops
  1423   // plausibility check for oops
  1424   if (!VerifyOops) return;
  1424   if (!VerifyOops) return;
  1425 
  1425 
  1426   char buffer[64];
  1426   const char* real_msg = NULL;
  1427   sprintf(buffer, "%d", line);
  1427   {
  1428   int len = strlen(file) + strlen(msg) + 1 + 4 + strlen(buffer);
  1428     ResourceMark rm;
  1429   sprintf(buffer, " at SP+%d ", addr.disp());
  1429     stringStream ss;
  1430   len += strlen(buffer);
  1430     ss.print("%s at SP+%d (%s:%d)", msg, addr.disp(), file, line);
  1431   char * real_msg = new char[len];
  1431     real_msg = code_string(ss.as_string());
  1432   sprintf(real_msg, "%s at SP+%d (%s:%d)", msg, addr.disp(), file, line);
  1432   }
  1433 
  1433 
  1434   // Call indirectly to solve generation ordering problem
  1434   // Call indirectly to solve generation ordering problem
  1435   AddressLiteral a(StubRoutines::verify_oop_subroutine_entry_address());
  1435   AddressLiteral a(StubRoutines::verify_oop_subroutine_entry_address());
  1436 
  1436 
  1437   // Make some space on stack above the current register window.
  1437   // Make some space on stack above the current register window.
  1620 void MacroAssembler::untested(const char* what) {
  1620 void MacroAssembler::untested(const char* what) {
  1621   // We must be able to turn interactive prompting off
  1621   // We must be able to turn interactive prompting off
  1622   // in order to run automated test scripts on the VM
  1622   // in order to run automated test scripts on the VM
  1623   // Use the flag ShowMessageBoxOnError
  1623   // Use the flag ShowMessageBoxOnError
  1624 
  1624 
  1625   char* b = new char[1024];
  1625   const char* b = NULL;
  1626   sprintf(b, "untested: %s", what);
  1626   {
  1627 
  1627     ResourceMark rm;
       
  1628     stringStream ss;
       
  1629     ss.print("untested: %s", what);
       
  1630     b = code_string(ss.as_string());
       
  1631   }
  1628   if (ShowMessageBoxOnError) { STOP(b); }
  1632   if (ShowMessageBoxOnError) { STOP(b); }
  1629   else                       { warn(b); }
  1633   else                       { warn(b); }
  1630 }
  1634 }
  1631 
  1635 
  1632 
  1636