diff options
Diffstat (limited to 'src/lib/libcrypto/des/asm/des_enc.m4')
-rw-r--r-- | src/lib/libcrypto/des/asm/des_enc.m4 | 345 |
1 files changed, 231 insertions, 114 deletions
diff --git a/src/lib/libcrypto/des/asm/des_enc.m4 b/src/lib/libcrypto/des/asm/des_enc.m4 index f5b1928f99..f59333a030 100644 --- a/src/lib/libcrypto/des/asm/des_enc.m4 +++ b/src/lib/libcrypto/des/asm/des_enc.m4 | |||
@@ -44,6 +44,7 @@ | |||
44 | ! | 44 | ! |
45 | 45 | ||
46 | .ident "des_enc.m4 2.1" | 46 | .ident "des_enc.m4 2.1" |
47 | .file "des_enc-sparc.S" | ||
47 | 48 | ||
48 | #if defined(__SUNPRO_C) && defined(__sparcv9) | 49 | #if defined(__SUNPRO_C) && defined(__sparcv9) |
49 | # define ABI64 /* They've said -xarch=v9 at command line */ | 50 | # define ABI64 /* They've said -xarch=v9 at command line */ |
@@ -315,16 +316,16 @@ $4: | |||
315 | ld [global1+local1], local1 | 316 | ld [global1+local1], local1 |
316 | xor $2, out1, out1 ! 8642 | 317 | xor $2, out1, out1 ! 8642 |
317 | xor $2, out0, out0 ! 7531 | 318 | xor $2, out0, out0 ! 7531 |
318 | fmovs %f0, %f0 ! fxor used for alignment | 319 | ! fmovs %f0, %f0 ! fxor used for alignment |
319 | 320 | ||
320 | srl out1, 4, local0 ! rotate 4 right | 321 | srl out1, 4, local0 ! rotate 4 right |
321 | and out0, local5, local3 ! 3 | 322 | and out0, local5, local3 ! 3 |
322 | fmovs %f0, %f0 | 323 | ! fmovs %f0, %f0 |
323 | 324 | ||
324 | ld [$5+$3*8], local7 ! key 7531 next round | 325 | ld [$5+$3*8], local7 ! key 7531 next round |
325 | srl local3, 8, local3 ! 3 | 326 | srl local3, 8, local3 ! 3 |
326 | and local0, 252, local2 ! 2 | 327 | and local0, 252, local2 ! 2 |
327 | fmovs %f0, %f0 | 328 | ! fmovs %f0, %f0 |
328 | 329 | ||
329 | ld [global3+local3],local3 ! 3 | 330 | ld [global3+local3],local3 ! 3 |
330 | sll out1, 28, out1 ! rotate | 331 | sll out1, 28, out1 ! rotate |
@@ -1179,8 +1180,11 @@ DES_encrypt1: | |||
1179 | 1180 | ||
1180 | save %sp, FRAME, %sp | 1181 | save %sp, FRAME, %sp |
1181 | 1182 | ||
1182 | call .PIC.me.up | 1183 | sethi %hi(.PIC.DES_SPtrans-1f),global1 |
1183 | mov .PIC.me.up-(.-4),out0 | 1184 | or global1,%lo(.PIC.DES_SPtrans-1f),global1 |
1185 | 1: call .+8 | ||
1186 | add %o7,global1,global1 | ||
1187 | sub global1,.PIC.DES_SPtrans-.des_and,out2 | ||
1184 | 1188 | ||
1185 | ld [in0], in5 ! left | 1189 | ld [in0], in5 ! left |
1186 | cmp in2, 0 ! enc | 1190 | cmp in2, 0 ! enc |
@@ -1237,8 +1241,11 @@ DES_encrypt2: | |||
1237 | 1241 | ||
1238 | save %sp, FRAME, %sp | 1242 | save %sp, FRAME, %sp |
1239 | 1243 | ||
1240 | call .PIC.me.up | 1244 | sethi %hi(.PIC.DES_SPtrans-1f),global1 |
1241 | mov .PIC.me.up-(.-4),out0 | 1245 | or global1,%lo(.PIC.DES_SPtrans-1f),global1 |
1246 | 1: call .+8 | ||
1247 | add %o7,global1,global1 | ||
1248 | sub global1,.PIC.DES_SPtrans-.des_and,out2 | ||
1242 | 1249 | ||
1243 | ! Set sbox address 1 to 6 and rotate halfs 3 left | 1250 | ! Set sbox address 1 to 6 and rotate halfs 3 left |
1244 | ! Errors caught by destest? Yes. Still? *NO* | 1251 | ! Errors caught by destest? Yes. Still? *NO* |
@@ -1352,8 +1359,11 @@ DES_encrypt3: | |||
1352 | 1359 | ||
1353 | save %sp, FRAME, %sp | 1360 | save %sp, FRAME, %sp |
1354 | 1361 | ||
1355 | call .PIC.me.up | 1362 | sethi %hi(.PIC.DES_SPtrans-1f),global1 |
1356 | mov .PIC.me.up-(.-4),out0 | 1363 | or global1,%lo(.PIC.DES_SPtrans-1f),global1 |
1364 | 1: call .+8 | ||
1365 | add %o7,global1,global1 | ||
1366 | sub global1,.PIC.DES_SPtrans-.des_and,out2 | ||
1357 | 1367 | ||
1358 | ld [in0], in5 ! left | 1368 | ld [in0], in5 ! left |
1359 | add in2, 120, in4 ! ks2 | 1369 | add in2, 120, in4 ! ks2 |
@@ -1394,8 +1404,11 @@ DES_decrypt3: | |||
1394 | 1404 | ||
1395 | save %sp, FRAME, %sp | 1405 | save %sp, FRAME, %sp |
1396 | 1406 | ||
1397 | call .PIC.me.up | 1407 | sethi %hi(.PIC.DES_SPtrans-1f),global1 |
1398 | mov .PIC.me.up-(.-4),out0 | 1408 | or global1,%lo(.PIC.DES_SPtrans-1f),global1 |
1409 | 1: call .+8 | ||
1410 | add %o7,global1,global1 | ||
1411 | sub global1,.PIC.DES_SPtrans-.des_and,out2 | ||
1399 | 1412 | ||
1400 | ld [in0], in5 ! left | 1413 | ld [in0], in5 ! left |
1401 | add in3, 120, in4 ! ks3 | 1414 | add in3, 120, in4 ! ks3 |
@@ -1424,105 +1437,6 @@ DES_decrypt3: | |||
1424 | .DES_decrypt3.end: | 1437 | .DES_decrypt3.end: |
1425 | .size DES_decrypt3,.DES_decrypt3.end-DES_decrypt3 | 1438 | .size DES_decrypt3,.DES_decrypt3.end-DES_decrypt3 |
1426 | 1439 | ||
1427 | .align 256 | ||
1428 | .type .des_and,#object | ||
1429 | .size .des_and,284 | ||
1430 | |||
1431 | .des_and: | ||
1432 | |||
1433 | ! This table is used for AND 0xFC when it is known that register | ||
1434 | ! bits 8-31 are zero. Makes it possible to do three arithmetic | ||
1435 | ! operations in one cycle. | ||
1436 | |||
1437 | .byte 0, 0, 0, 0, 4, 4, 4, 4 | ||
1438 | .byte 8, 8, 8, 8, 12, 12, 12, 12 | ||
1439 | .byte 16, 16, 16, 16, 20, 20, 20, 20 | ||
1440 | .byte 24, 24, 24, 24, 28, 28, 28, 28 | ||
1441 | .byte 32, 32, 32, 32, 36, 36, 36, 36 | ||
1442 | .byte 40, 40, 40, 40, 44, 44, 44, 44 | ||
1443 | .byte 48, 48, 48, 48, 52, 52, 52, 52 | ||
1444 | .byte 56, 56, 56, 56, 60, 60, 60, 60 | ||
1445 | .byte 64, 64, 64, 64, 68, 68, 68, 68 | ||
1446 | .byte 72, 72, 72, 72, 76, 76, 76, 76 | ||
1447 | .byte 80, 80, 80, 80, 84, 84, 84, 84 | ||
1448 | .byte 88, 88, 88, 88, 92, 92, 92, 92 | ||
1449 | .byte 96, 96, 96, 96, 100, 100, 100, 100 | ||
1450 | .byte 104, 104, 104, 104, 108, 108, 108, 108 | ||
1451 | .byte 112, 112, 112, 112, 116, 116, 116, 116 | ||
1452 | .byte 120, 120, 120, 120, 124, 124, 124, 124 | ||
1453 | .byte 128, 128, 128, 128, 132, 132, 132, 132 | ||
1454 | .byte 136, 136, 136, 136, 140, 140, 140, 140 | ||
1455 | .byte 144, 144, 144, 144, 148, 148, 148, 148 | ||
1456 | .byte 152, 152, 152, 152, 156, 156, 156, 156 | ||
1457 | .byte 160, 160, 160, 160, 164, 164, 164, 164 | ||
1458 | .byte 168, 168, 168, 168, 172, 172, 172, 172 | ||
1459 | .byte 176, 176, 176, 176, 180, 180, 180, 180 | ||
1460 | .byte 184, 184, 184, 184, 188, 188, 188, 188 | ||
1461 | .byte 192, 192, 192, 192, 196, 196, 196, 196 | ||
1462 | .byte 200, 200, 200, 200, 204, 204, 204, 204 | ||
1463 | .byte 208, 208, 208, 208, 212, 212, 212, 212 | ||
1464 | .byte 216, 216, 216, 216, 220, 220, 220, 220 | ||
1465 | .byte 224, 224, 224, 224, 228, 228, 228, 228 | ||
1466 | .byte 232, 232, 232, 232, 236, 236, 236, 236 | ||
1467 | .byte 240, 240, 240, 240, 244, 244, 244, 244 | ||
1468 | .byte 248, 248, 248, 248, 252, 252, 252, 252 | ||
1469 | |||
1470 | ! 5 numbers for initil/final permutation | ||
1471 | |||
1472 | .word 0x0f0f0f0f ! offset 256 | ||
1473 | .word 0x0000ffff ! 260 | ||
1474 | .word 0x33333333 ! 264 | ||
1475 | .word 0x00ff00ff ! 268 | ||
1476 | .word 0x55555555 ! 272 | ||
1477 | |||
1478 | .word 0 ! 276 | ||
1479 | .word LOOPS ! 280 | ||
1480 | .word 0x0000FC00 ! 284 | ||
1481 | .PIC.DES_SPtrans: | ||
1482 | .word %r_disp32(DES_SPtrans) | ||
1483 | |||
1484 | ! input: out0 offset between .PIC.me.up and caller | ||
1485 | ! output: out0 pointer to .PIC.me.up | ||
1486 | ! out2 pointer to .des_and | ||
1487 | ! global1 pointer to DES_SPtrans | ||
1488 | .align 32 | ||
1489 | .PIC.me.up: | ||
1490 | add out0,%o7,out0 ! pointer to .PIC.me.up | ||
1491 | #if 1 | ||
1492 | ld [out0+(.PIC.DES_SPtrans-.PIC.me.up)],global1 | ||
1493 | add global1,(.PIC.DES_SPtrans-.PIC.me.up),global1 | ||
1494 | add global1,out0,global1 | ||
1495 | #else | ||
1496 | # ifdef OPENSSL_PIC | ||
1497 | ! In case anybody wonders why this code is same for both ABI. | ||
1498 | ! To start with it is not. Do note LDPTR below. But of course | ||
1499 | ! you must be wondering why the rest of it does not contain | ||
1500 | ! things like %hh, %hm and %lm. Well, those are needed only | ||
1501 | ! if OpenSSL library *itself* will become larger than 4GB, | ||
1502 | ! which is not going to happen any time soon. | ||
1503 | sethi %hi(DES_SPtrans),global1 | ||
1504 | or global1,%lo(DES_SPtrans),global1 | ||
1505 | sethi %hi(_GLOBAL_OFFSET_TABLE_-(.PIC.me.up-.)),out2 | ||
1506 | add global1,out0,global1 | ||
1507 | add out2,%lo(_GLOBAL_OFFSET_TABLE_-(.PIC.me.up-.)),out2 | ||
1508 | LDPTR [out2+global1],global1 | ||
1509 | # elif 0 | ||
1510 | setn DES_SPtrans,out2,global1 ! synthetic instruction ! | ||
1511 | # elif defined(ABI64) | ||
1512 | sethi %hh(DES_SPtrans),out2 | ||
1513 | or out2,%hm(DES_SPtrans),out2 | ||
1514 | sethi %lm(DES_SPtrans),global1 | ||
1515 | or global1,%lo(DES_SPtrans),global1 | ||
1516 | sllx out2,32,out2 | ||
1517 | or out2,global1,global1 | ||
1518 | # else | ||
1519 | sethi %hi(DES_SPtrans),global1 | ||
1520 | or global1,%lo(DES_SPtrans),global1 | ||
1521 | # endif | ||
1522 | #endif | ||
1523 | retl | ||
1524 | add out0,.des_and-.PIC.me.up,out2 | ||
1525 | |||
1526 | ! void DES_ncbc_encrypt(input, output, length, schedule, ivec, enc) | 1440 | ! void DES_ncbc_encrypt(input, output, length, schedule, ivec, enc) |
1527 | ! ***************************************************************** | 1441 | ! ***************************************************************** |
1528 | 1442 | ||
@@ -1539,8 +1453,11 @@ DES_ncbc_encrypt: | |||
1539 | define({OUTPUT}, { [%sp+BIAS+ARG0+1*ARGSZ] }) | 1453 | define({OUTPUT}, { [%sp+BIAS+ARG0+1*ARGSZ] }) |
1540 | define({IVEC}, { [%sp+BIAS+ARG0+4*ARGSZ] }) | 1454 | define({IVEC}, { [%sp+BIAS+ARG0+4*ARGSZ] }) |
1541 | 1455 | ||
1542 | call .PIC.me.up | 1456 | sethi %hi(.PIC.DES_SPtrans-1f),global1 |
1543 | mov .PIC.me.up-(.-4),out0 | 1457 | or global1,%lo(.PIC.DES_SPtrans-1f),global1 |
1458 | 1: call .+8 | ||
1459 | add %o7,global1,global1 | ||
1460 | sub global1,.PIC.DES_SPtrans-.des_and,out2 | ||
1544 | 1461 | ||
1545 | cmp in5, 0 ! enc | 1462 | cmp in5, 0 ! enc |
1546 | 1463 | ||
@@ -1761,8 +1678,11 @@ DES_ede3_cbc_encrypt: | |||
1761 | define({KS2}, { [%sp+BIAS+ARG0+4*ARGSZ] }) | 1678 | define({KS2}, { [%sp+BIAS+ARG0+4*ARGSZ] }) |
1762 | define({KS3}, { [%sp+BIAS+ARG0+5*ARGSZ] }) | 1679 | define({KS3}, { [%sp+BIAS+ARG0+5*ARGSZ] }) |
1763 | 1680 | ||
1764 | call .PIC.me.up | 1681 | sethi %hi(.PIC.DES_SPtrans-1f),global1 |
1765 | mov .PIC.me.up-(.-4),out0 | 1682 | or global1,%lo(.PIC.DES_SPtrans-1f),global1 |
1683 | 1: call .+8 | ||
1684 | add %o7,global1,global1 | ||
1685 | sub global1,.PIC.DES_SPtrans-.des_and,out2 | ||
1766 | 1686 | ||
1767 | LDPTR [%fp+BIAS+ARG0+7*ARGSZ], local3 ! enc | 1687 | LDPTR [%fp+BIAS+ARG0+7*ARGSZ], local3 ! enc |
1768 | LDPTR [%fp+BIAS+ARG0+6*ARGSZ], local4 ! ivec | 1688 | LDPTR [%fp+BIAS+ARG0+6*ARGSZ], local4 ! ivec |
@@ -1978,3 +1898,200 @@ DES_ede3_cbc_encrypt: | |||
1978 | 1898 | ||
1979 | .DES_ede3_cbc_encrypt.end: | 1899 | .DES_ede3_cbc_encrypt.end: |
1980 | .size DES_ede3_cbc_encrypt,.DES_ede3_cbc_encrypt.end-DES_ede3_cbc_encrypt | 1900 | .size DES_ede3_cbc_encrypt,.DES_ede3_cbc_encrypt.end-DES_ede3_cbc_encrypt |
1901 | |||
1902 | .align 256 | ||
1903 | .type .des_and,#object | ||
1904 | .size .des_and,284 | ||
1905 | |||
1906 | .des_and: | ||
1907 | |||
1908 | ! This table is used for AND 0xFC when it is known that register | ||
1909 | ! bits 8-31 are zero. Makes it possible to do three arithmetic | ||
1910 | ! operations in one cycle. | ||
1911 | |||
1912 | .byte 0, 0, 0, 0, 4, 4, 4, 4 | ||
1913 | .byte 8, 8, 8, 8, 12, 12, 12, 12 | ||
1914 | .byte 16, 16, 16, 16, 20, 20, 20, 20 | ||
1915 | .byte 24, 24, 24, 24, 28, 28, 28, 28 | ||
1916 | .byte 32, 32, 32, 32, 36, 36, 36, 36 | ||
1917 | .byte 40, 40, 40, 40, 44, 44, 44, 44 | ||
1918 | .byte 48, 48, 48, 48, 52, 52, 52, 52 | ||
1919 | .byte 56, 56, 56, 56, 60, 60, 60, 60 | ||
1920 | .byte 64, 64, 64, 64, 68, 68, 68, 68 | ||
1921 | .byte 72, 72, 72, 72, 76, 76, 76, 76 | ||
1922 | .byte 80, 80, 80, 80, 84, 84, 84, 84 | ||
1923 | .byte 88, 88, 88, 88, 92, 92, 92, 92 | ||
1924 | .byte 96, 96, 96, 96, 100, 100, 100, 100 | ||
1925 | .byte 104, 104, 104, 104, 108, 108, 108, 108 | ||
1926 | .byte 112, 112, 112, 112, 116, 116, 116, 116 | ||
1927 | .byte 120, 120, 120, 120, 124, 124, 124, 124 | ||
1928 | .byte 128, 128, 128, 128, 132, 132, 132, 132 | ||
1929 | .byte 136, 136, 136, 136, 140, 140, 140, 140 | ||
1930 | .byte 144, 144, 144, 144, 148, 148, 148, 148 | ||
1931 | .byte 152, 152, 152, 152, 156, 156, 156, 156 | ||
1932 | .byte 160, 160, 160, 160, 164, 164, 164, 164 | ||
1933 | .byte 168, 168, 168, 168, 172, 172, 172, 172 | ||
1934 | .byte 176, 176, 176, 176, 180, 180, 180, 180 | ||
1935 | .byte 184, 184, 184, 184, 188, 188, 188, 188 | ||
1936 | .byte 192, 192, 192, 192, 196, 196, 196, 196 | ||
1937 | .byte 200, 200, 200, 200, 204, 204, 204, 204 | ||
1938 | .byte 208, 208, 208, 208, 212, 212, 212, 212 | ||
1939 | .byte 216, 216, 216, 216, 220, 220, 220, 220 | ||
1940 | .byte 224, 224, 224, 224, 228, 228, 228, 228 | ||
1941 | .byte 232, 232, 232, 232, 236, 236, 236, 236 | ||
1942 | .byte 240, 240, 240, 240, 244, 244, 244, 244 | ||
1943 | .byte 248, 248, 248, 248, 252, 252, 252, 252 | ||
1944 | |||
1945 | ! 5 numbers for initil/final permutation | ||
1946 | |||
1947 | .word 0x0f0f0f0f ! offset 256 | ||
1948 | .word 0x0000ffff ! 260 | ||
1949 | .word 0x33333333 ! 264 | ||
1950 | .word 0x00ff00ff ! 268 | ||
1951 | .word 0x55555555 ! 272 | ||
1952 | |||
1953 | .word 0 ! 276 | ||
1954 | .word LOOPS ! 280 | ||
1955 | .word 0x0000FC00 ! 284 | ||
1956 | |||
1957 | .type .PIC.DES_SPtrans,#object | ||
1958 | .size .PIC.DES_SPtrans,2048 | ||
1959 | .align 64 | ||
1960 | .PIC.DES_SPtrans: | ||
1961 | ! nibble 0 | ||
1962 | .word 0x02080800, 0x00080000, 0x02000002, 0x02080802 | ||
1963 | .word 0x02000000, 0x00080802, 0x00080002, 0x02000002 | ||
1964 | .word 0x00080802, 0x02080800, 0x02080000, 0x00000802 | ||
1965 | .word 0x02000802, 0x02000000, 0x00000000, 0x00080002 | ||
1966 | .word 0x00080000, 0x00000002, 0x02000800, 0x00080800 | ||
1967 | .word 0x02080802, 0x02080000, 0x00000802, 0x02000800 | ||
1968 | .word 0x00000002, 0x00000800, 0x00080800, 0x02080002 | ||
1969 | .word 0x00000800, 0x02000802, 0x02080002, 0x00000000 | ||
1970 | .word 0x00000000, 0x02080802, 0x02000800, 0x00080002 | ||
1971 | .word 0x02080800, 0x00080000, 0x00000802, 0x02000800 | ||
1972 | .word 0x02080002, 0x00000800, 0x00080800, 0x02000002 | ||
1973 | .word 0x00080802, 0x00000002, 0x02000002, 0x02080000 | ||
1974 | .word 0x02080802, 0x00080800, 0x02080000, 0x02000802 | ||
1975 | .word 0x02000000, 0x00000802, 0x00080002, 0x00000000 | ||
1976 | .word 0x00080000, 0x02000000, 0x02000802, 0x02080800 | ||
1977 | .word 0x00000002, 0x02080002, 0x00000800, 0x00080802 | ||
1978 | ! nibble 1 | ||
1979 | .word 0x40108010, 0x00000000, 0x00108000, 0x40100000 | ||
1980 | .word 0x40000010, 0x00008010, 0x40008000, 0x00108000 | ||
1981 | .word 0x00008000, 0x40100010, 0x00000010, 0x40008000 | ||
1982 | .word 0x00100010, 0x40108000, 0x40100000, 0x00000010 | ||
1983 | .word 0x00100000, 0x40008010, 0x40100010, 0x00008000 | ||
1984 | .word 0x00108010, 0x40000000, 0x00000000, 0x00100010 | ||
1985 | .word 0x40008010, 0x00108010, 0x40108000, 0x40000010 | ||
1986 | .word 0x40000000, 0x00100000, 0x00008010, 0x40108010 | ||
1987 | .word 0x00100010, 0x40108000, 0x40008000, 0x00108010 | ||
1988 | .word 0x40108010, 0x00100010, 0x40000010, 0x00000000 | ||
1989 | .word 0x40000000, 0x00008010, 0x00100000, 0x40100010 | ||
1990 | .word 0x00008000, 0x40000000, 0x00108010, 0x40008010 | ||
1991 | .word 0x40108000, 0x00008000, 0x00000000, 0x40000010 | ||
1992 | .word 0x00000010, 0x40108010, 0x00108000, 0x40100000 | ||
1993 | .word 0x40100010, 0x00100000, 0x00008010, 0x40008000 | ||
1994 | .word 0x40008010, 0x00000010, 0x40100000, 0x00108000 | ||
1995 | ! nibble 2 | ||
1996 | .word 0x04000001, 0x04040100, 0x00000100, 0x04000101 | ||
1997 | .word 0x00040001, 0x04000000, 0x04000101, 0x00040100 | ||
1998 | .word 0x04000100, 0x00040000, 0x04040000, 0x00000001 | ||
1999 | .word 0x04040101, 0x00000101, 0x00000001, 0x04040001 | ||
2000 | .word 0x00000000, 0x00040001, 0x04040100, 0x00000100 | ||
2001 | .word 0x00000101, 0x04040101, 0x00040000, 0x04000001 | ||
2002 | .word 0x04040001, 0x04000100, 0x00040101, 0x04040000 | ||
2003 | .word 0x00040100, 0x00000000, 0x04000000, 0x00040101 | ||
2004 | .word 0x04040100, 0x00000100, 0x00000001, 0x00040000 | ||
2005 | .word 0x00000101, 0x00040001, 0x04040000, 0x04000101 | ||
2006 | .word 0x00000000, 0x04040100, 0x00040100, 0x04040001 | ||
2007 | .word 0x00040001, 0x04000000, 0x04040101, 0x00000001 | ||
2008 | .word 0x00040101, 0x04000001, 0x04000000, 0x04040101 | ||
2009 | .word 0x00040000, 0x04000100, 0x04000101, 0x00040100 | ||
2010 | .word 0x04000100, 0x00000000, 0x04040001, 0x00000101 | ||
2011 | .word 0x04000001, 0x00040101, 0x00000100, 0x04040000 | ||
2012 | ! nibble 3 | ||
2013 | .word 0x00401008, 0x10001000, 0x00000008, 0x10401008 | ||
2014 | .word 0x00000000, 0x10400000, 0x10001008, 0x00400008 | ||
2015 | .word 0x10401000, 0x10000008, 0x10000000, 0x00001008 | ||
2016 | .word 0x10000008, 0x00401008, 0x00400000, 0x10000000 | ||
2017 | .word 0x10400008, 0x00401000, 0x00001000, 0x00000008 | ||
2018 | .word 0x00401000, 0x10001008, 0x10400000, 0x00001000 | ||
2019 | .word 0x00001008, 0x00000000, 0x00400008, 0x10401000 | ||
2020 | .word 0x10001000, 0x10400008, 0x10401008, 0x00400000 | ||
2021 | .word 0x10400008, 0x00001008, 0x00400000, 0x10000008 | ||
2022 | .word 0x00401000, 0x10001000, 0x00000008, 0x10400000 | ||
2023 | .word 0x10001008, 0x00000000, 0x00001000, 0x00400008 | ||
2024 | .word 0x00000000, 0x10400008, 0x10401000, 0x00001000 | ||
2025 | .word 0x10000000, 0x10401008, 0x00401008, 0x00400000 | ||
2026 | .word 0x10401008, 0x00000008, 0x10001000, 0x00401008 | ||
2027 | .word 0x00400008, 0x00401000, 0x10400000, 0x10001008 | ||
2028 | .word 0x00001008, 0x10000000, 0x10000008, 0x10401000 | ||
2029 | ! nibble 4 | ||
2030 | .word 0x08000000, 0x00010000, 0x00000400, 0x08010420 | ||
2031 | .word 0x08010020, 0x08000400, 0x00010420, 0x08010000 | ||
2032 | .word 0x00010000, 0x00000020, 0x08000020, 0x00010400 | ||
2033 | .word 0x08000420, 0x08010020, 0x08010400, 0x00000000 | ||
2034 | .word 0x00010400, 0x08000000, 0x00010020, 0x00000420 | ||
2035 | .word 0x08000400, 0x00010420, 0x00000000, 0x08000020 | ||
2036 | .word 0x00000020, 0x08000420, 0x08010420, 0x00010020 | ||
2037 | .word 0x08010000, 0x00000400, 0x00000420, 0x08010400 | ||
2038 | .word 0x08010400, 0x08000420, 0x00010020, 0x08010000 | ||
2039 | .word 0x00010000, 0x00000020, 0x08000020, 0x08000400 | ||
2040 | .word 0x08000000, 0x00010400, 0x08010420, 0x00000000 | ||
2041 | .word 0x00010420, 0x08000000, 0x00000400, 0x00010020 | ||
2042 | .word 0x08000420, 0x00000400, 0x00000000, 0x08010420 | ||
2043 | .word 0x08010020, 0x08010400, 0x00000420, 0x00010000 | ||
2044 | .word 0x00010400, 0x08010020, 0x08000400, 0x00000420 | ||
2045 | .word 0x00000020, 0x00010420, 0x08010000, 0x08000020 | ||
2046 | ! nibble 5 | ||
2047 | .word 0x80000040, 0x00200040, 0x00000000, 0x80202000 | ||
2048 | .word 0x00200040, 0x00002000, 0x80002040, 0x00200000 | ||
2049 | .word 0x00002040, 0x80202040, 0x00202000, 0x80000000 | ||
2050 | .word 0x80002000, 0x80000040, 0x80200000, 0x00202040 | ||
2051 | .word 0x00200000, 0x80002040, 0x80200040, 0x00000000 | ||
2052 | .word 0x00002000, 0x00000040, 0x80202000, 0x80200040 | ||
2053 | .word 0x80202040, 0x80200000, 0x80000000, 0x00002040 | ||
2054 | .word 0x00000040, 0x00202000, 0x00202040, 0x80002000 | ||
2055 | .word 0x00002040, 0x80000000, 0x80002000, 0x00202040 | ||
2056 | .word 0x80202000, 0x00200040, 0x00000000, 0x80002000 | ||
2057 | .word 0x80000000, 0x00002000, 0x80200040, 0x00200000 | ||
2058 | .word 0x00200040, 0x80202040, 0x00202000, 0x00000040 | ||
2059 | .word 0x80202040, 0x00202000, 0x00200000, 0x80002040 | ||
2060 | .word 0x80000040, 0x80200000, 0x00202040, 0x00000000 | ||
2061 | .word 0x00002000, 0x80000040, 0x80002040, 0x80202000 | ||
2062 | .word 0x80200000, 0x00002040, 0x00000040, 0x80200040 | ||
2063 | ! nibble 6 | ||
2064 | .word 0x00004000, 0x00000200, 0x01000200, 0x01000004 | ||
2065 | .word 0x01004204, 0x00004004, 0x00004200, 0x00000000 | ||
2066 | .word 0x01000000, 0x01000204, 0x00000204, 0x01004000 | ||
2067 | .word 0x00000004, 0x01004200, 0x01004000, 0x00000204 | ||
2068 | .word 0x01000204, 0x00004000, 0x00004004, 0x01004204 | ||
2069 | .word 0x00000000, 0x01000200, 0x01000004, 0x00004200 | ||
2070 | .word 0x01004004, 0x00004204, 0x01004200, 0x00000004 | ||
2071 | .word 0x00004204, 0x01004004, 0x00000200, 0x01000000 | ||
2072 | .word 0x00004204, 0x01004000, 0x01004004, 0x00000204 | ||
2073 | .word 0x00004000, 0x00000200, 0x01000000, 0x01004004 | ||
2074 | .word 0x01000204, 0x00004204, 0x00004200, 0x00000000 | ||
2075 | .word 0x00000200, 0x01000004, 0x00000004, 0x01000200 | ||
2076 | .word 0x00000000, 0x01000204, 0x01000200, 0x00004200 | ||
2077 | .word 0x00000204, 0x00004000, 0x01004204, 0x01000000 | ||
2078 | .word 0x01004200, 0x00000004, 0x00004004, 0x01004204 | ||
2079 | .word 0x01000004, 0x01004200, 0x01004000, 0x00004004 | ||
2080 | ! nibble 7 | ||
2081 | .word 0x20800080, 0x20820000, 0x00020080, 0x00000000 | ||
2082 | .word 0x20020000, 0x00800080, 0x20800000, 0x20820080 | ||
2083 | .word 0x00000080, 0x20000000, 0x00820000, 0x00020080 | ||
2084 | .word 0x00820080, 0x20020080, 0x20000080, 0x20800000 | ||
2085 | .word 0x00020000, 0x00820080, 0x00800080, 0x20020000 | ||
2086 | .word 0x20820080, 0x20000080, 0x00000000, 0x00820000 | ||
2087 | .word 0x20000000, 0x00800000, 0x20020080, 0x20800080 | ||
2088 | .word 0x00800000, 0x00020000, 0x20820000, 0x00000080 | ||
2089 | .word 0x00800000, 0x00020000, 0x20000080, 0x20820080 | ||
2090 | .word 0x00020080, 0x20000000, 0x00000000, 0x00820000 | ||
2091 | .word 0x20800080, 0x20020080, 0x20020000, 0x00800080 | ||
2092 | .word 0x20820000, 0x00000080, 0x00800080, 0x20020000 | ||
2093 | .word 0x20820080, 0x00800000, 0x20800000, 0x20000080 | ||
2094 | .word 0x00820000, 0x00020080, 0x20020080, 0x20800000 | ||
2095 | .word 0x00000080, 0x20820000, 0x00820080, 0x00000000 | ||
2096 | .word 0x20000000, 0x20800080, 0x00020000, 0x00820080 | ||
2097 | |||