hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
changeset 7433 b418028612ad
parent 7427 d7b79a367474
child 7724 a92d706dbdd5
child 7700 3252c02e23b8
equal deleted inserted replaced
7432:f06f1253c317 7433:b418028612ad
  1439     if (low10(lo) != 0)
  1439     if (low10(lo) != 0)
  1440       or3 (  d, low10(lo),   d);
  1440       or3 (  d, low10(lo),   d);
  1441     sllx(tmp, 32, tmp);
  1441     sllx(tmp, 32, tmp);
  1442     or3 (d, tmp, d);
  1442     or3 (d, tmp, d);
  1443   }
  1443   }
       
  1444 }
       
  1445 
       
  1446 int MacroAssembler::size_of_set64(jlong value) {
       
  1447   v9_dep();
       
  1448 
       
  1449   int hi = (int)(value >> 32);
       
  1450   int lo = (int)(value & ~0);
       
  1451   int count = 0;
       
  1452 
       
  1453   // (Matcher::isSimpleConstant64 knows about the following optimizations.)
       
  1454   if (Assembler::is_simm13(lo) && value == lo) {
       
  1455     count++;
       
  1456   } else if (hi == 0) {
       
  1457     count++;
       
  1458     if (low10(lo) != 0)
       
  1459       count++;
       
  1460   }
       
  1461   else if (hi == -1) {
       
  1462     count += 2;
       
  1463   }
       
  1464   else if (lo == 0) {
       
  1465     if (Assembler::is_simm13(hi)) {
       
  1466       count++;
       
  1467     } else {
       
  1468       count++;
       
  1469       if (low10(hi) != 0)
       
  1470         count++;
       
  1471     }
       
  1472     count++;
       
  1473   }
       
  1474   else {
       
  1475     count += 2;
       
  1476     if (low10(hi) != 0)
       
  1477       count++;
       
  1478     if (low10(lo) != 0)
       
  1479       count++;
       
  1480     count += 2;
       
  1481   }
       
  1482   return count;
  1444 }
  1483 }
  1445 
  1484 
  1446 // compute size in bytes of sparc frame, given
  1485 // compute size in bytes of sparc frame, given
  1447 // number of extraWords
  1486 // number of extraWords
  1448 int MacroAssembler::total_frame_size_in_bytes(int extraWords) {
  1487 int MacroAssembler::total_frame_size_in_bytes(int extraWords) {