/* * preemption and migration overhead measurement * * platform dependent functions */ #ifndef PM_ARCH_H #define PM_ARCH_H #if defined(__i386__) || defined(__x86_64__) #define RWCYCLE 4 static inline void readwrite_one_thousand_ints(int *mem_ptr) { int i, dummy; for (i=0; i<1024; i++) { if((i%RWCYCLE) == (RWCYCLE - 1)) { /* write */ mem_ptr[i]++; } else { /* read */ dummy = mem_ptr[i]; } } } static inline void read_mem(int *loc_ptr) { int dummy; dummy = *loc_ptr; } static inline void write_mem(int *loc_ptr) { int dummy; dummy = ++(*loc_ptr); } #endif /* !__i386__ && !__x86_64__ */ #ifdef __sparc__ static inline void read_mem(int *loc_ptr) { __asm__ __volatile__("ld [%0], %%g1" : : "r"(loc_ptr) : "g1", "cc", "memory"); } static inline void write_mem(int *loc_ptr) { __asm__ __volatile__("st %%g1, [%0]" : : "r"(loc_ptr) : "g1", "cc", "memory"); } static inline void readwrite_one_thousand_ints(int *mem_ptr) { __asm__ __volatile__( "ld [%0], %%g1\n" "ld [%0+4], %%g1\n" "ld [%0+8], %%g1\n" "st %%g1, [%0+12]\n" "ld [%0+16], %%g1\n" "ld [%0+20], %%g1\n" "ld [%0+24], %%g1\n" "st %%g1, [%0+28]\n" "ld [%0+32], %%g1\n" "ld [%0+36], %%g1\n" "ld [%0+40], %%g1\n" "st %%g1, [%0+44]\n" "ld [%0+48], %%g1\n" "ld [%0+52], %%g1\n" "ld [%0+56], %%g1\n" "st %%g1, [%0+60]\n" "ld [%0+64], %%g1\n" "ld [%0+68], %%g1\n" "ld [%0+72], %%g1\n" "st %%g1, [%0+76]\n" "ld [%0+80], %%g1\n" "ld [%0+84], %%g1\n" "ld [%0+88], %%g1\n" "st %%g1, [%0+92]\n" "ld [%0+96], %%g1\n" "ld [%0+100], %%g1\n" "ld [%0+104], %%g1\n" "st %%g1, [%0+108]\n" "ld [%0+112], %%g1\n" "ld [%0+116], %%g1\n" "ld [%0+120], %%g1\n" "st %%g1, [%0+124]\n" "ld [%0+128], %%g1\n" "ld [%0+132], %%g1\n" "ld [%0+136], %%g1\n" "st %%g1, [%0+140]\n" "ld [%0+144], %%g1\n" "ld [%0+148], %%g1\n" "ld [%0+152], %%g1\n" "st %%g1, [%0+156]\n" "ld [%0+160], %%g1\n" "ld [%0+164], %%g1\n" "ld [%0+168], %%g1\n" "st %%g1, [%0+172]\n" "ld [%0+176], %%g1\n" "ld [%0+180], %%g1\n" "ld [%0+184], %%g1\n" "st %%g1, [%0+188]\n" "ld [%0+192], %%g1\n" "ld [%0+196], %%g1\n" "ld [%0+200], %%g1\n" "st %%g1, [%0+204]\n" "ld [%0+208], %%g1\n" "ld [%0+212], %%g1\n" "ld [%0+216], %%g1\n" "st %%g1, [%0+220]\n" "ld [%0+224], %%g1\n" "ld [%0+228], %%g1\n" "ld [%0+232], %%g1\n" "st %%g1, [%0+236]\n" "ld [%0+240], %%g1\n" "ld [%0+244], %%g1\n" "ld [%0+248], %%g1\n" "st %%g1, [%0+252]\n" "ld [%0+256], %%g1\n" "ld [%0+260], %%g1\n" "ld [%0+264], %%g1\n" "st %%g1, [%0+268]\n" "ld [%0+272], %%g1\n" "ld [%0+276], %%g1\n" "ld [%0+280], %%g1\n" "st %%g1, [%0+284]\n" "ld [%0+288], %%g1\n" "ld [%0+292], %%g1\n" "ld [%0+296], %%g1\n" "st %%g1, [%0+300]\n" "ld [%0+304], %%g1\n" "ld [%0+308], %%g1\n" "ld [%0+312], %%g1\n" "st %%g1, [%0+316]\n" "ld [%0+320], %%g1\n" "ld [%0+324], %%g1\n" "ld [%0+328], %%g1\n" "st %%g1, [%0+332]\n" "ld [%0+336], %%g1\n" "ld [%0+340], %%g1\n" "ld [%0+344], %%g1\n" "st %%g1, [%0+348]\n" "ld [%0+352], %%g1\n" "ld [%0+356], %%g1\n" "ld [%0+360], %%g1\n" "st %%g1, [%0+364]\n" "ld [%0+368], %%g1\n" "ld [%0+372], %%g1\n" "ld [%0+376], %%g1\n" "st %%g1, [%0+380]\n" "ld [%0+384], %%g1\n" "ld [%0+388], %%g1\n" "ld [%0+392], %%g1\n" "st %%g1, [%0+396]\n" "ld [%0+400], %%g1\n" "ld [%0+404], %%g1\n" "ld [%0+408], %%g1\n" "st %%g1, [%0+412]\n" "ld [%0+416], %%g1\n" "ld [%0+420], %%g1\n" "ld [%0+424], %%g1\n" "st %%g1, [%0+428]\n" "ld [%0+432], %%g1\n" "ld [%0+436], %%g1\n" "ld [%0+440], %%g1\n" "st %%g1, [%0+444]\n" "ld [%0+448], %%g1\n" "ld [%0+452], %%g1\n" "ld [%0+456], %%g1\n" "st %%g1, [%0+460]\n" "ld [%0+464], %%g1\n" "ld [%0+468], %%g1\n" "ld [%0+472], %%g1\n" "st %%g1, [%0+476]\n" "ld [%0+480], %%g1\n" "ld [%0+484], %%g1\n" "ld [%0+488], %%g1\n" "st %%g1, [%0+492]\n" "ld [%0+496], %%g1\n" "ld [%0+500], %%g1\n" "ld [%0+504], %%g1\n" "st %%g1, [%0+508]\n" "ld [%0+512], %%g1\n" "ld [%0+516], %%g1\n" "ld [%0+520], %%g1\n" "st %%g1, [%0+524]\n" "ld [%0+528], %%g1\n" "ld [%0+532], %%g1\n" "ld [%0+536], %%g1\n" "st %%g1, [%0+540]\n" "ld [%0+544], %%g1\n" "ld [%0+548], %%g1\n" "ld [%0+552], %%g1\n" "st %%g1, [%0+556]\n" "ld [%0+560], %%g1\n" "ld [%0+564], %%g1\n" "ld [%0+568], %%g1\n" "st %%g1, [%0+572]\n" "ld [%0+576], %%g1\n" "ld [%0+580], %%g1\n" "ld [%0+584], %%g1\n" "st %%g1, [%0+588]\n" "ld [%0+592], %%g1\n" "ld [%0+596], %%g1\n" "ld [%0+600], %%g1\n" "st %%g1, [%0+604]\n" "ld [%0+608], %%g1\n" "ld [%0+612], %%g1\n" "ld [%0+616], %%g1\n" "st %%g1, [%0+620]\n" "ld [%0+624], %%g1\n" "ld [%0+628], %%g1\n" "ld [%0+632], %%g1\n" "st %%g1, [%0+636]\n" "ld [%0+640], %%g1\n" "ld [%0+644], %%g1\n" "ld [%0+648], %%g1\n" "st %%g1, [%0+652]\n" "ld [%0+656], %%g1\n" "ld [%0+660], %%g1\n" "ld [%0+664], %%g1\n" "st %%g1, [%0+668]\n" "ld [%0+672], %%g1\n" "ld [%0+676], %%g1\n" "ld [%0+680], %%g1\n" "st %%g1, [%0+684]\n" "ld [%0+688], %%g1\n" "ld [%0+692], %%g1\n" "ld [%0+696], %%g1\n" "st %%g1, [%0+700]\n" "ld [%0+704], %%g1\n" "ld [%0+708], %%g1\n" "ld [%0+712], %%g1\n" "st %%g1, [%0+716]\n" "ld [%0+720], %%g1\n" "ld [%0+724], %%g1\n" "ld [%0+728], %%g1\n" "st %%g1, [%0+732]\n" "ld [%0+736], %%g1\n" "ld [%0+740], %%g1\n" "ld [%0+744], %%g1\n" "st %%g1, [%0+748]\n" "ld [%0+752], %%g1\n" "ld [%0+756], %%g1\n" "ld [%0+760], %%g1\n" "st %%g1, [%0+764]\n" "ld [%0+768], %%g1\n" "ld [%0+772], %%g1\n" "ld [%0+776], %%g1\n" "st %%g1, [%0+780]\n" "ld [%0+784], %%g1\n" "ld [%0+788], %%g1\n" "ld [%0+792], %%g1\n" "st %%g1, [%0+796]\n" "ld [%0+800], %%g1\n" "ld [%0+804], %%g1\n" "ld [%0+808], %%g1\n" "st %%g1, [%0+812]\n" "ld [%0+816], %%g1\n" "ld [%0+820], %%g1\n" "ld [%0+824], %%g1\n" "st %%g1, [%0+828]\n" "ld [%0+832], %%g1\n" "ld [%0+836], %%g1\n" "ld [%0+840], %%g1\n" "st %%g1, [%0+844]\n" "ld [%0+848], %%g1\n" "ld [%0+852], %%g1\n" "ld [%0+856], %%g1\n" "st %%g1, [%0+860]\n" "ld [%0+864], %%g1\n" "ld [%0+868], %%g1\n" "ld [%0+872], %%g1\n" "st %%g1, [%0+876]\n" "ld [%0+880], %%g1\n" "ld [%0+884], %%g1\n" "ld [%0+888], %%g1\n" "st %%g1, [%0+892]\n" "ld [%0+896], %%g1\n" "ld [%0+900], %%g1\n" "ld [%0+904], %%g1\n" "st %%g1, [%0+908]\n" "ld [%0+912], %%g1\n" "ld [%0+916], %%g1\n" "ld [%0+920], %%g1\n" "st %%g1, [%0+924]\n" "ld [%0+928], %%g1\n" "ld [%0+932], %%g1\n" "ld [%0+936], %%g1\n" "st %%g1, [%0+940]\n" "ld [%0+944], %%g1\n" "ld [%0+948], %%g1\n" "ld [%0+952], %%g1\n" "st %%g1, [%0+956]\n" "ld [%0+960], %%g1\n" "ld [%0+964], %%g1\n" "ld [%0+968], %%g1\n" "st %%g1, [%0+972]\n" "ld [%0+976], %%g1\n" "ld [%0+980], %%g1\n" "ld [%0+984], %%g1\n" "st %%g1, [%0+988]\n" "ld [%0+992], %%g1\n" "ld [%0+996], %%g1\n" "ld [%0+1000], %%g1\n" "st %%g1, [%0+1004]\n" "ld [%0+1008], %%g1\n" "ld [%0+1012], %%g1\n" "ld [%0+1016], %%g1\n" "st %%g1, [%0+1020]\n" "ld [%0+1024], %%g1\n" "ld [%0+1028], %%g1\n" "ld [%0+1032], %%g1\n" "st %%g1, [%0+1036]\n" "ld [%0+1040], %%g1\n" "ld [%0+1044], %%g1\n" "ld [%0+1048], %%g1\n" "st %%g1, [%0+1052]\n" "ld [%0+1056], %%g1\n" "ld [%0+1060], %%g1\n" "ld [%0+1064], %%g1\n" "st %%g1, [%0+1068]\n" "ld [%0+1072], %%g1\n" "ld [%0+1076], %%g1\n" "ld [%0+1080], %%g1\n" "st %%g1, [%0+1084]\n" "ld [%0+1088], %%g1\n" "ld [%0+1092], %%g1\n" "ld [%0+1096], %%g1\n" "st %%g1, [%0+1100]\n" "ld [%0+1104], %%g1\n" "ld [%0+1108], %%g1\n" "ld [%0+1112], %%g1\n" "st %%g1, [%0+1116]\n" "ld [%0+1120], %%g1\n" "ld [%0+1124], %%g1\n" "ld [%0+1128], %%g1\n" "st %%g1, [%0+1132]\n" "ld [%0+1136], %%g1\n" "ld [%0+1140], %%g1\n" "ld [%0+1144], %%g1\n" "st %%g1, [%0+1148]\n" "ld [%0+1152], %%g1\n" "ld [%0+1156], %%g1\n" "ld [%0+1160], %%g1\n" "st %%g1, [%0+1164]\n" "ld [%0+1168], %%g1\n" "ld [%0+1172], %%g1\n" "ld [%0+1176], %%g1\n" "st %%g1, [%0+1180]\n" "ld [%0+1184], %%g1\n" "ld [%0+1188], %%g1\n" "ld [%0+1192], %%g1\n" "st %%g1, [%0+1196]\n" "ld [%0+1200], %%g1\n" "ld [%0+1204], %%g1\n" "ld [%0+1208], %%g1\n" "st %%g1, [%0+1212]\n" "ld [%0+1216], %%g1\n" "ld [%0+1220], %%g1\n" "ld [%0+1224], %%g1\n" "st %%g1, [%0+1228]\n" "ld [%0+1232], %%g1\n" "ld [%0+1236], %%g1\n" "ld [%0+1240], %%g1\n" "st %%g1, [%0+1244]\n" "ld [%0+1248], %%g1\n" "ld [%0+1252], %%g1\n" "ld [%0+1256], %%g1\n" "st %%g1, [%0+1260]\n" "ld [%0+1264], %%g1\n" "ld [%0+1268], %%g1\n" "ld [%0+1272], %%g1\n" "st %%g1, [%0+1276]\n" "ld [%0+1280], %%g1\n" "ld [%0+1284], %%g1\n" "ld [%0+1288], %%g1\n" "st %%g1, [%0+1292]\n" "ld [%0+1296], %%g1\n" "ld [%0+1300], %%g1\n" "ld [%0+1304], %%g1\n" "st %%g1, [%0+1308]\n" "ld [%0+1312], %%g1\n" "ld [%0+1316], %%g1\n" "ld [%0+1320], %%g1\n" "st %%g1, [%0+1324]\n" "ld [%0+1328], %%g1\n" "ld [%0+1332], %%g1\n" "ld [%0+1336], %%g1\n" "st %%g1, [%0+1340]\n" "ld [%0+1344], %%g1\n" "ld [%0+1348], %%g1\n" "ld [%0+1352], %%g1\n" "st %%g1, [%0+1356]\n" "ld [%0+1360], %%g1\n" "ld [%0+1364], %%g1\n" "ld [%0+1368], %%g1\n" "st %%g1, [%0+1372]\n" "ld [%0+1376], %%g1\n" "ld [%0+1380], %%g1\n" "ld [%0+1384], %%g1\n" "st %%g1, [%0+1388]\n" "ld [%0+1392], %%g1\n" "ld [%0+1396], %%g1\n" "ld [%0+1400], %%g1\n" "st %%g1, [%0+1404]\n" "ld [%0+1408], %%g1\n" "ld [%0+1412], %%g1\n" "ld [%0+1416], %%g1\n" "st %%g1, [%0+1420]\n" "ld [%0+1424], %%g1\n" "ld [%0+1428], %%g1\n" "ld [%0+1432], %%g1\n" "st %%g1, [%0+1436]\n" "ld [%0+1440], %%g1\n" "ld [%0+1444], %%g1\n" "ld [%0+1448], %%g1\n" "st %%g1, [%0+1452]\n" "ld [%0+1456], %%g1\n" "ld [%0+1460], %%g1\n" "ld [%0+1464], %%g1\n" "st %%g1, [%0+1468]\n" "ld [%0+1472], %%g1\n" "ld [%0+1476], %%g1\n" "ld [%0+1480], %%g1\n" "st %%g1, [%0+1484]\n" "ld [%0+1488], %%g1\n" "ld [%0+1492], %%g1\n" "ld [%0+1496], %%g1\n" "st %%g1, [%0+1500]\n" "ld [%0+1504], %%g1\n" "ld [%0+1508], %%g1\n" "ld [%0+1512], %%g1\n" "st %%g1, [%0+1516]\n" "ld [%0+1520], %%g1\n" "ld [%0+1524], %%g1\n" "ld [%0+1528], %%g1\n" "st %%g1, [%0+1532]\n" "ld [%0+1536], %%g1\n" "ld [%0+1540], %%g1\n" "ld [%0+1544], %%g1\n" "st %%g1, [%0+1548]\n" "ld [%0+1552], %%g1\n" "ld [%0+1556], %%g1\n" "ld [%0+1560], %%g1\n" "st %%g1, [%0+1564]\n" "ld [%0+1568], %%g1\n" "ld [%0+1572], %%g1\n" "ld [%0+1576], %%g1\n" "st %%g1, [%0+1580]\n" "ld [%0+1584], %%g1\n" "ld [%0+1588], %%g1\n" "ld [%0+1592], %%g1\n" "st %%g1, [%0+1596]\n" "ld [%0+1600], %%g1\n" "ld [%0+1604], %%g1\n" "ld [%0+1608], %%g1\n" "st %%g1, [%0+1612]\n" "ld [%0+1616], %%g1\n" "ld [%0+1620], %%g1\n" "ld [%0+1624], %%g1\n" "st %%g1, [%0+1628]\n" "ld [%0+1632], %%g1\n" "ld [%0+1636], %%g1\n" "ld [%0+1640], %%g1\n" "st %%g1, [%0+1644]\n" "ld [%0+1648], %%g1\n" "ld [%0+1652], %%g1\n" "ld [%0+1656], %%g1\n" "st %%g1, [%0+1660]\n" "ld [%0+1664], %%g1\n" "ld [%0+1668], %%g1\n" "ld [%0+1672], %%g1\n" "st %%g1, [%0+1676]\n" "ld [%0+1680], %%g1\n" "ld [%0+1684], %%g1\n" "ld [%0+1688], %%g1\n" "st %%g1, [%0+1692]\n" "ld [%0+1696], %%g1\n" "ld [%0+1700], %%g1\n" "ld [%0+1704], %%g1\n" "st %%g1, [%0+1708]\n" "ld [%0+1712], %%g1\n" "ld [%0+1716], %%g1\n" "ld [%0+1720], %%g1\n" "st %%g1, [%0+1724]\n" "ld [%0+1728], %%g1\n" "ld [%0+1732], %%g1\n" "ld [%0+1736], %%g1\n" "st %%g1, [%0+1740]\n" "ld [%0+1744], %%g1\n" "ld [%0+1748], %%g1\n" "ld [%0+1752], %%g1\n" "st %%g1, [%0+1756]\n" "ld [%0+1760], %%g1\n" "ld [%0+1764], %%g1\n" "ld [%0+1768], %%g1\n" "st %%g1, [%0+1772]\n" "ld [%0+1776], %%g1\n" "ld [%0+1780], %%g1\n" "ld [%0+1784], %%g1\n" "st %%g1, [%0+1788]\n" "ld [%0+1792], %%g1\n" "ld [%0+1796], %%g1\n" "ld [%0+1800], %%g1\n" "st %%g1, [%0+1804]\n" "ld [%0+1808], %%g1\n" "ld [%0+1812], %%g1\n" "ld [%0+1816], %%g1\n" "st %%g1, [%0+1820]\n" "ld [%0+1824], %%g1\n" "ld [%0+1828], %%g1\n" "ld [%0+1832], %%g1\n" "st %%g1, [%0+1836]\n" "ld [%0+1840], %%g1\n" "ld [%0+1844], %%g1\n" "ld [%0+1848], %%g1\n" "st %%g1, [%0+1852]\n" "ld [%0+1856], %%g1\n" "ld [%0+1860], %%g1\n" "ld [%0+1864], %%g1\n" "st %%g1, [%0+1868]\n" "ld [%0+1872], %%g1\n" "ld [%0+1876], %%g1\n" "ld [%0+1880], %%g1\n" "st %%g1, [%0+1884]\n" "ld [%0+1888], %%g1\n" "ld [%0+1892], %%g1\n" "ld [%0+1896], %%g1\n" "st %%g1, [%0+1900]\n" "ld [%0+1904], %%g1\n" "ld [%0+1908], %%g1\n" "ld [%0+1912], %%g1\n" "st %%g1, [%0+1916]\n" "ld [%0+1920], %%g1\n" "ld [%0+1924], %%g1\n" "ld [%0+1928], %%g1\n" "st %%g1, [%0+1932]\n" "ld [%0+1936], %%g1\n" "ld [%0+1940], %%g1\n" "ld [%0+1944], %%g1\n" "st %%g1, [%0+1948]\n" "ld [%0+1952], %%g1\n" "ld [%0+1956], %%g1\n" "ld [%0+1960], %%g1\n" "st %%g1, [%0+1964]\n" "ld [%0+1968], %%g1\n" "ld [%0+1972], %%g1\n" "ld [%0+1976], %%g1\n" "st %%g1, [%0+1980]\n" "ld [%0+1984], %%g1\n" "ld [%0+1988], %%g1\n" "ld [%0+1992], %%g1\n" "st %%g1, [%0+1996]\n" "ld [%0+2000], %%g1\n" "ld [%0+2004], %%g1\n" "ld [%0+2008], %%g1\n" "st %%g1, [%0+2012]\n" "ld [%0+2016], %%g1\n" "ld [%0+2020], %%g1\n" "ld [%0+2024], %%g1\n" "st %%g1, [%0+2028]\n" "ld [%0+2032], %%g1\n" "ld [%0+2036], %%g1\n" "ld [%0+2040], %%g1\n" "st %%g1, [%0+2044]\n" "ld [%0+2048], %%g1\n" "ld [%0+2052], %%g1\n" "ld [%0+2056], %%g1\n" "st %%g1, [%0+2060]\n" "ld [%0+2064], %%g1\n" "ld [%0+2068], %%g1\n" "ld [%0+2072], %%g1\n" "st %%g1, [%0+2076]\n" "ld [%0+2080], %%g1\n" "ld [%0+2084], %%g1\n" "ld [%0+2088], %%g1\n" "st %%g1, [%0+2092]\n" "ld [%0+2096], %%g1\n" "ld [%0+2100], %%g1\n" "ld [%0+2104], %%g1\n" "st %%g1, [%0+2108]\n" "ld [%0+2112], %%g1\n" "ld [%0+2116], %%g1\n" "ld [%0+2120], %%g1\n" "st %%g1, [%0+2124]\n" "ld [%0+2128], %%g1\n" "ld [%0+2132], %%g1\n" "ld [%0+2136], %%g1\n" "st %%g1, [%0+2140]\n" "ld [%0+2144], %%g1\n" "ld [%0+2148], %%g1\n" "ld [%0+2152], %%g1\n" "st %%g1, [%0+2156]\n" "ld [%0+2160], %%g1\n" "ld [%0+2164], %%g1\n" "ld [%0+2168], %%g1\n" "st %%g1, [%0+2172]\n" "ld [%0+2176], %%g1\n" "ld [%0+2180], %%g1\n" "ld [%0+2184], %%g1\n" "st %%g1, [%0+2188]\n" "ld [%0+2192], %%g1\n" "ld [%0+2196], %%g1\n" "ld [%0+2200], %%g1\n" "st %%g1, [%0+2204]\n" "ld [%0+2208], %%g1\n" "ld [%0+2212], %%g1\n" "ld [%0+2216], %%g1\n" "st %%g1, [%0+2220]\n" "ld [%0+2224], %%g1\n" "ld [%0+2228], %%g1\n" "ld [%0+2232], %%g1\n" "st %%g1, [%0+2236]\n" "ld [%0+2240], %%g1\n" "ld [%0+2244], %%g1\n" "ld [%0+2248], %%g1\n" "st %%g1, [%0+2252]\n" "ld [%0+2256], %%g1\n" "ld [%0+2260], %%g1\n" "ld [%0+2264], %%g1\n" "st %%g1, [%0+2268]\n" "ld [%0+2272], %%g1\n" "ld [%0+2276], %%g1\n" "ld [%0+2280], %%g1\n" "st %%g1, [%0+2284]\n" "ld [%0+2288], %%g1\n" "ld [%0+2292], %%g1\n" "ld [%0+2296], %%g1\n" "st %%g1, [%0+2300]\n" "ld [%0+2304], %%g1\n" "ld [%0+2308], %%g1\n" "ld [%0+2312], %%g1\n" "st %%g1, [%0+2316]\n" "ld [%0+2320], %%g1\n" "ld [%0+2324], %%g1\n" "ld [%0+2328], %%g1\n" "st %%g1, [%0+2332]\n" "ld [%0+2336], %%g1\n" "ld [%0+2340], %%g1\n" "ld [%0+2344], %%g1\n" "st %%g1, [%0+2348]\n" "ld [%0+2352], %%g1\n" "ld [%0+2356], %%g1\n" "ld [%0+2360], %%g1\n" "st %%g1, [%0+2364]\n" "ld [%0+2368], %%g1\n" "ld [%0+2372], %%g1\n" "ld [%0+2376], %%g1\n" "st %%g1, [%0+2380]\n" "ld [%0+2384], %%g1\n" "ld [%0+2388], %%g1\n" "ld [%0+2392], %%g1\n" "st %%g1, [%0+2396]\n" "ld [%0+2400], %%g1\n" "ld [%0+2404], %%g1\n" "ld [%0+2408], %%g1\n" "st %%g1, [%0+2412]\n" "ld [%0+2416], %%g1\n" "ld [%0+2420], %%g1\n" "ld [%0+2424], %%g1\n" "st %%g1, [%0+2428]\n" "ld [%0+2432], %%g1\n" "ld [%0+2436], %%g1\n" "ld [%0+2440], %%g1\n" "st %%g1, [%0+2444]\n" "ld [%0+2448], %%g1\n" "ld [%0+2452], %%g1\n" "ld [%0+2456], %%g1\n" "st %%g1, [%0+2460]\n" "ld [%0+2464], %%g1\n" "ld [%0+2468], %%g1\n" "ld [%0+2472], %%g1\n" "st %%g1, [%0+2476]\n" "ld [%0+2480], %%g1\n" "ld [%0+2484], %%g1\n" "ld [%0+2488], %%g1\n" "st %%g1, [%0+2492]\n" "ld [%0+2496], %%g1\n" "ld [%0+2500], %%g1\n" "ld [%0+2504], %%g1\n" "st %%g1, [%0+2508]\n" "ld [%0+2512], %%g1\n" "ld [%0+2516], %%g1\n" "ld [%0+2520], %%g1\n" "st %%g1, [%0+2524]\n" "ld [%0+2528], %%g1\n" "ld [%0+2532], %%g1\n" "ld [%0+2536], %%g1\n" "st %%g1, [%0+2540]\n" "ld [%0+2544], %%g1\n" "ld [%0+2548], %%g1\n" "ld [%0+2552], %%g1\n" "st %%g1, [%0+2556]\n" "ld [%0+2560], %%g1\n" "ld [%0+2564], %%g1\n" "ld [%0+2568], %%g1\n" "st %%g1, [%0+2572]\n" "ld [%0+2576], %%g1\n" "ld [%0+2580], %%g1\n" "ld [%0+2584], %%g1\n" "st %%g1, [%0+2588]\n" "ld [%0+2592], %%g1\n" "ld [%0+2596], %%g1\n" "ld [%0+2600], %%g1\n" "st %%g1, [%0+2604]\n" "ld [%0+2608], %%g1\n" "ld [%0+2612], %%g1\n" "ld [%0+2616], %%g1\n" "st %%g1, [%0+2620]\n" "ld [%0+2624], %%g1\n" "ld [%0+2628], %%g1\n" "ld [%0+2632], %%g1\n" "st %%g1, [%0+2636]\n" "ld [%0+2640], %%g1\n" "ld [%0+2644], %%g1\n" "ld [%0+2648], %%g1\n" "st %%g1, [%0+2652]\n" "ld [%0+2656], %%g1\n" "ld [%0+2660], %%g1\n" "ld [%0+2664], %%g1\n" "st %%g1, [%0+2668]\n" "ld [%0+2672], %%g1\n" "ld [%0+2676], %%g1\n" "ld [%0+2680], %%g1\n" "st %%g1, [%0+2684]\n" "ld [%0+2688], %%g1\n" "ld [%0+2692], %%g1\n" "ld [%0+2696], %%g1\n" "st %%g1, [%0+2700]\n" "ld [%0+2704], %%g1\n" "ld [%0+2708], %%g1\n" "ld [%0+2712], %%g1\n" "st %%g1, [%0+2716]\n" "ld [%0+2720], %%g1\n" "ld [%0+2724], %%g1\n" "ld [%0+2728], %%g1\n" "st %%g1, [%0+2732]\n" "ld [%0+2736], %%g1\n" "ld [%0+2740], %%g1\n" "ld [%0+2744], %%g1\n" "st %%g1, [%0+2748]\n" "ld [%0+2752], %%g1\n" "ld [%0+2756], %%g1\n" "ld [%0+2760], %%g1\n" "st %%g1, [%0+2764]\n" "ld [%0+2768], %%g1\n" "ld [%0+2772], %%g1\n" "ld [%0+2776], %%g1\n" "st %%g1, [%0+2780]\n" "ld [%0+2784], %%g1\n" "ld [%0+2788], %%g1\n" "ld [%0+2792], %%g1\n" "st %%g1, [%0+2796]\n" "ld [%0+2800], %%g1\n" "ld [%0+2804], %%g1\n" "ld [%0+2808], %%g1\n" "st %%g1, [%0+2812]\n" "ld [%0+2816], %%g1\n" "ld [%0+2820], %%g1\n" "ld [%0+2824], %%g1\n" "st %%g1, [%0+2828]\n" "ld [%0+2832], %%g1\n" "ld [%0+2836], %%g1\n" "ld [%0+2840], %%g1\n" "st %%g1, [%0+2844]\n" "ld [%0+2848], %%g1\n" "ld [%0+2852], %%g1\n" "ld [%0+2856], %%g1\n" "st %%g1, [%0+2860]\n" "ld [%0+2864], %%g1\n" "ld [%0+2868], %%g1\n" "ld [%0+2872], %%g1\n" "st %%g1, [%0+2876]\n" "ld [%0+2880], %%g1\n" "ld [%0+2884], %%g1\n" "ld [%0+2888], %%g1\n" "st %%g1, [%0+2892]\n" "ld [%0+2896], %%g1\n" "ld [%0+2900], %%g1\n" "ld [%0+2904], %%g1\n" "st %%g1, [%0+2908]\n" "ld [%0+2912], %%g1\n" "ld [%0+2916], %%g1\n" "ld [%0+2920], %%g1\n" "st %%g1, [%0+2924]\n" "ld [%0+2928], %%g1\n" "ld [%0+2932], %%g1\n" "ld [%0+2936], %%g1\n" "st %%g1, [%0+2940]\n" "ld [%0+2944], %%g1\n" "ld [%0+2948], %%g1\n" "ld [%0+2952], %%g1\n" "st %%g1, [%0+2956]\n" "ld [%0+2960], %%g1\n" "ld [%0+2964], %%g1\n" "ld [%0+2968], %%g1\n" "st %%g1, [%0+2972]\n" "ld [%0+2976], %%g1\n" "ld [%0+2980], %%g1\n" "ld [%0+2984], %%g1\n" "st %%g1, [%0+2988]\n" "ld [%0+2992], %%g1\n" "ld [%0+2996], %%g1\n" "ld [%0+3000], %%g1\n" "st %%g1, [%0+3004]\n" "ld [%0+3008], %%g1\n" "ld [%0+3012], %%g1\n" "ld [%0+3016], %%g1\n" "st %%g1, [%0+3020]\n" "ld [%0+3024], %%g1\n" "ld [%0+3028], %%g1\n" "ld [%0+3032], %%g1\n" "st %%g1, [%0+3036]\n" "ld [%0+3040], %%g1\n" "ld [%0+3044], %%g1\n" "ld [%0+3048], %%g1\n" "st %%g1, [%0+3052]\n" "ld [%0+3056], %%g1\n" "ld [%0+3060], %%g1\n" "ld [%0+3064], %%g1\n" "st %%g1, [%0+3068]\n" "ld [%0+3072], %%g1\n" "ld [%0+3076], %%g1\n" "ld [%0+3080], %%g1\n" "st %%g1, [%0+3084]\n" "ld [%0+3088], %%g1\n" "ld [%0+3092], %%g1\n" "ld [%0+3096], %%g1\n" "st %%g1, [%0+3100]\n" "ld [%0+3104], %%g1\n" "ld [%0+3108], %%g1\n" "ld [%0+3112], %%g1\n" "st %%g1, [%0+3116]\n" "ld [%0+3120], %%g1\n" "ld [%0+3124], %%g1\n" "ld [%0+3128], %%g1\n" "st %%g1, [%0+3132]\n" "ld [%0+3136], %%g1\n" "ld [%0+3140], %%g1\n" "ld [%0+3144], %%g1\n" "st %%g1, [%0+3148]\n" "ld [%0+3152], %%g1\n" "ld [%0+3156], %%g1\n" "ld [%0+3160], %%g1\n" "st %%g1, [%0+3164]\n" "ld [%0+3168], %%g1\n" "ld [%0+3172], %%g1\n" "ld [%0+3176], %%g1\n" "st %%g1, [%0+3180]\n" "ld [%0+3184], %%g1\n" "ld [%0+3188], %%g1\n" "ld [%0+3192], %%g1\n" "st %%g1, [%0+3196]\n" "ld [%0+3200], %%g1\n" "ld [%0+3204], %%g1\n" "ld [%0+3208], %%g1\n" "st %%g1, [%0+3212]\n" "ld [%0+3216], %%g1\n" "ld [%0+3220], %%g1\n" "ld [%0+3224], %%g1\n" "st %%g1, [%0+3228]\n" "ld [%0+3232], %%g1\n" "ld [%0+3236], %%g1\n" "ld [%0+3240], %%g1\n" "st %%g1, [%0+3244]\n" "ld [%0+3248], %%g1\n" "ld [%0+3252], %%g1\n" "ld [%0+3256], %%g1\n" "st %%g1, [%0+3260]\n" "ld [%0+3264], %%g1\n" "ld [%0+3268], %%g1\n" "ld [%0+3272], %%g1\n" "st %%g1, [%0+3276]\n" "ld [%0+3280], %%g1\n" "ld [%0+3284], %%g1\n" "ld [%0+3288], %%g1\n" "st %%g1, [%0+3292]\n" "ld [%0+3296], %%g1\n" "ld [%0+3300], %%g1\n" "ld [%0+3304], %%g1\n" "st %%g1, [%0+3308]\n" "ld [%0+3312], %%g1\n" "ld [%0+3316], %%g1\n" "ld [%0+3320], %%g1\n" "st %%g1, [%0+3324]\n" "ld [%0+3328], %%g1\n" "ld [%0+3332], %%g1\n" "ld [%0+3336], %%g1\n" "st %%g1, [%0+3340]\n" "ld [%0+3344], %%g1\n" "ld [%0+3348], %%g1\n" "ld [%0+3352], %%g1\n" "st %%g1, [%0+3356]\n" "ld [%0+3360], %%g1\n" "ld [%0+3364], %%g1\n" "ld [%0+3368], %%g1\n" "st %%g1, [%0+3372]\n" "ld [%0+3376], %%g1\n" "ld [%0+3380], %%g1\n" "ld [%0+3384], %%g1\n" "st %%g1, [%0+3388]\n" "ld [%0+3392], %%g1\n" "ld [%0+3396], %%g1\n" "ld [%0+3400], %%g1\n" "st %%g1, [%0+3404]\n" "ld [%0+3408], %%g1\n" "ld [%0+3412], %%g1\n" "ld [%0+3416], %%g1\n" "st %%g1, [%0+3420]\n" "ld [%0+3424], %%g1\n" "ld [%0+3428], %%g1\n" "ld [%0+3432], %%g1\n" "st %%g1, [%0+3436]\n" "ld [%0+3440], %%g1\n" "ld [%0+3444], %%g1\n" "ld [%0+3448], %%g1\n" "st %%g1, [%0+3452]\n" "ld [%0+3456], %%g1\n" "ld [%0+3460], %%g1\n" "ld [%0+3464], %%g1\n" "st %%g1, [%0+3468]\n" "ld [%0+3472], %%g1\n" "ld [%0+3476], %%g1\n" "ld [%0+3480], %%g1\n" "st %%g1, [%0+3484]\n" "ld [%0+3488], %%g1\n" "ld [%0+3492], %%g1\n" "ld [%0+3496], %%g1\n" "st %%g1, [%0+3500]\n" "ld [%0+3504], %%g1\n" "ld [%0+3508], %%g1\n" "ld [%0+3512], %%g1\n" "st %%g1, [%0+3516]\n" "ld [%0+3520], %%g1\n" "ld [%0+3524], %%g1\n" "ld [%0+3528], %%g1\n" "st %%g1, [%0+3532]\n" "ld [%0+3536], %%g1\n" "ld [%0+3540], %%g1\n" "ld [%0+3544], %%g1\n" "st %%g1, [%0+3548]\n" "ld [%0+3552], %%g1\n" "ld [%0+3556], %%g1\n" "ld [%0+3560], %%g1\n" "st %%g1, [%0+3564]\n" "ld [%0+3568], %%g1\n" "ld [%0+3572], %%g1\n" "ld [%0+3576], %%g1\n" "st %%g1, [%0+3580]\n" "ld [%0+3584], %%g1\n" "ld [%0+3588], %%g1\n" "ld [%0+3592], %%g1\n" "st %%g1, [%0+3596]\n" "ld [%0+3600], %%g1\n" "ld [%0+3604], %%g1\n" "ld [%0+3608], %%g1\n" "st %%g1, [%0+3612]\n" "ld [%0+3616], %%g1\n" "ld [%0+3620], %%g1\n" "ld [%0+3624], %%g1\n" "st %%g1, [%0+3628]\n" "ld [%0+3632], %%g1\n" "ld [%0+3636], %%g1\n" "ld [%0+3640], %%g1\n" "st %%g1, [%0+3644]\n" "ld [%0+3648], %%g1\n" "ld [%0+3652], %%g1\n" "ld [%0+3656], %%g1\n" "st %%g1, [%0+3660]\n" "ld [%0+3664], %%g1\n" "ld [%0+3668], %%g1\n" "ld [%0+3672], %%g1\n" "st %%g1, [%0+3676]\n" "ld [%0+3680], %%g1\n" "ld [%0+3684], %%g1\n" "ld [%0+3688], %%g1\n" "st %%g1, [%0+3692]\n" "ld [%0+3696], %%g1\n" "ld [%0+3700], %%g1\n" "ld [%0+3704], %%g1\n" "st %%g1, [%0+3708]\n" "ld [%0+3712], %%g1\n" "ld [%0+3716], %%g1\n" "ld [%0+3720], %%g1\n" "st %%g1, [%0+3724]\n" "ld [%0+3728], %%g1\n" "ld [%0+3732], %%g1\n" "ld [%0+3736], %%g1\n" "st %%g1, [%0+3740]\n" "ld [%0+3744], %%g1\n" "ld [%0+3748], %%g1\n" "ld [%0+3752], %%g1\n" "st %%g1, [%0+3756]\n" "ld [%0+3760], %%g1\n" "ld [%0+3764], %%g1\n" "ld [%0+3768], %%g1\n" "st %%g1, [%0+3772]\n" "ld [%0+3776], %%g1\n" "ld [%0+3780], %%g1\n" "ld [%0+3784], %%g1\n" "st %%g1, [%0+3788]\n" "ld [%0+3792], %%g1\n" "ld [%0+3796], %%g1\n" "ld [%0+3800], %%g1\n" "st %%g1, [%0+3804]\n" "ld [%0+3808], %%g1\n" "ld [%0+3812], %%g1\n" "ld [%0+3816], %%g1\n" "st %%g1, [%0+3820]\n" "ld [%0+3824], %%g1\n" "ld [%0+3828], %%g1\n" "ld [%0+3832], %%g1\n" "st %%g1, [%0+3836]\n" "ld [%0+3840], %%g1\n" "ld [%0+3844], %%g1\n" "ld [%0+3848], %%g1\n" "st %%g1, [%0+3852]\n" "ld [%0+3856], %%g1\n" "ld [%0+3860], %%g1\n" "ld [%0+3864], %%g1\n" "st %%g1, [%0+3868]\n" "ld [%0+3872], %%g1\n" "ld [%0+3876], %%g1\n" "ld [%0+3880], %%g1\n" "st %%g1, [%0+3884]\n" "ld [%0+3888], %%g1\n" "ld [%0+3892], %%g1\n" "ld [%0+3896], %%g1\n" "st %%g1, [%0+3900]\n" "ld [%0+3904], %%g1\n" "ld [%0+3908], %%g1\n" "ld [%0+3912], %%g1\n" "st %%g1, [%0+3916]\n" "ld [%0+3920], %%g1\n" "ld [%0+3924], %%g1\n" "ld [%0+3928], %%g1\n" "st %%g1, [%0+3932]\n" "ld [%0+3936], %%g1\n" "ld [%0+3940], %%g1\n" "ld [%0+3944], %%g1\n" "st %%g1, [%0+3948]\n" "ld [%0+3952], %%g1\n" "ld [%0+3956], %%g1\n" "ld [%0+3960], %%g1\n" "st %%g1, [%0+3964]\n" "ld [%0+3968], %%g1\n" "ld [%0+3972], %%g1\n" "ld [%0+3976], %%g1\n" "st %%g1, [%0+3980]\n" "ld [%0+3984], %%g1\n" "ld [%0+3988], %%g1\n" "ld [%0+3992], %%g1\n" "st %%g1, [%0+3996]\n" "ld [%0+4000], %%g1\n" "ld [%0+4004], %%g1\n" "ld [%0+4008], %%g1\n" "st %%g1, [%0+4012]\n" "ld [%0+4016], %%g1\n" "ld [%0+4020], %%g1\n" "ld [%0+4024], %%g1\n" "st %%g1, [%0+4028]\n" "ld [%0+4032], %%g1\n" "ld [%0+4036], %%g1\n" "ld [%0+4040], %%g1\n" "st %%g1, [%0+4044]\n" "ld [%0+4048], %%g1\n" "ld [%0+4052], %%g1\n" "ld [%0+4056], %%g1\n" "st %%g1, [%0+4060]\n" "ld [%0+4064], %%g1\n" "ld [%0+4068], %%g1\n" "ld [%0+4072], %%g1\n" "st %%g1, [%0+4076]\n" "ld [%0+4080], %%g1\n" "ld [%0+4084], %%g1\n" "ld [%0+4088], %%g1\n" "st %%g1, [%0+4092]\n" : : "r"(mem_ptr) : "g1", "cc", "memory"); } #endif /* ! __sparc__ */ #endif