| ... | ... |
@@ -139,22 +139,19 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 139 | 139 |
#endif |
| 140 | 140 |
} |
| 141 | 141 |
break; |
| 142 |
- case 0x06: /* OVR */ |
|
| 143 |
- __asm__("evaluxn_06_OVR:");
|
|
| 142 |
+ case 0x06: /* NIP */ |
|
| 143 |
+ __asm__("evaluxn_06_NIP:");
|
|
| 144 | 144 |
{
|
| 145 |
- Uint8 a = u->wst.dat[u->wst.ptr - 1], b = u->wst.dat[u->wst.ptr - 2]; |
|
| 146 |
- u->wst.dat[u->wst.ptr] = b; |
|
| 145 |
+ Uint8 a; |
|
| 146 |
+ u->wst.dat[u->wst.ptr - 1]; |
|
| 147 |
+ a = u->wst.dat[u->wst.ptr - 2]; |
|
| 147 | 148 |
#ifndef NO_STACK_CHECKS |
| 148 | 149 |
if(__builtin_expect(u->wst.ptr < 2, 0)) {
|
| 149 | 150 |
u->wst.error = 1; |
| 150 | 151 |
goto error; |
| 151 | 152 |
} |
| 152 |
- if(__builtin_expect(u->wst.ptr > 254, 0)) {
|
|
| 153 |
- u->wst.error = 2; |
|
| 154 |
- goto error; |
|
| 155 |
- } |
|
| 156 | 153 |
#endif |
| 157 |
- u->wst.ptr += 1; |
|
| 154 |
+ u->wst.ptr -= 1; |
|
| 158 | 155 |
} |
| 159 | 156 |
break; |
| 160 | 157 |
case 0x07: /* ROT */ |
| ... | ... |
@@ -594,23 +591,21 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 594 | 591 |
#endif |
| 595 | 592 |
} |
| 596 | 593 |
break; |
| 597 |
- case 0x26: /* OVR2 */ |
|
| 598 |
- __asm__("evaluxn_26_OVR2:");
|
|
| 594 |
+ case 0x26: /* NIP2 */ |
|
| 595 |
+ __asm__("evaluxn_26_NIP2:");
|
|
| 599 | 596 |
{
|
| 600 |
- Uint8 a = u->wst.dat[u->wst.ptr - 1], b = u->wst.dat[u->wst.ptr - 2], c = u->wst.dat[u->wst.ptr - 3], d = u->wst.dat[u->wst.ptr - 4]; |
|
| 601 |
- u->wst.dat[u->wst.ptr] = d; |
|
| 602 |
- u->wst.dat[u->wst.ptr + 1] = c; |
|
| 597 |
+ Uint16 a; |
|
| 598 |
+ (u->wst.dat[u->wst.ptr - 1] | (u->wst.dat[u->wst.ptr - 2] << 8)); |
|
| 599 |
+ a = (u->wst.dat[u->wst.ptr - 3] | (u->wst.dat[u->wst.ptr - 4] << 8)); |
|
| 600 |
+ u->wst.dat[u->wst.ptr - 4] = a >> 8; |
|
| 601 |
+ u->wst.dat[u->wst.ptr - 3] = a & 0xff; |
|
| 603 | 602 |
#ifndef NO_STACK_CHECKS |
| 604 | 603 |
if(__builtin_expect(u->wst.ptr < 4, 0)) {
|
| 605 | 604 |
u->wst.error = 1; |
| 606 | 605 |
goto error; |
| 607 | 606 |
} |
| 608 |
- if(__builtin_expect(u->wst.ptr > 253, 0)) {
|
|
| 609 |
- u->wst.error = 2; |
|
| 610 |
- goto error; |
|
| 611 |
- } |
|
| 612 | 607 |
#endif |
| 613 |
- u->wst.ptr += 2; |
|
| 608 |
+ u->wst.ptr -= 2; |
|
| 614 | 609 |
} |
| 615 | 610 |
break; |
| 616 | 611 |
case 0x27: /* ROT2 */ |
| ... | ... |
@@ -1076,22 +1071,19 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 1076 | 1071 |
#endif |
| 1077 | 1072 |
} |
| 1078 | 1073 |
break; |
| 1079 |
- case 0x46: /* OVRr */ |
|
| 1080 |
- __asm__("evaluxn_46_OVRr:");
|
|
| 1074 |
+ case 0x46: /* NIPr */ |
|
| 1075 |
+ __asm__("evaluxn_46_NIPr:");
|
|
| 1081 | 1076 |
{
|
| 1082 |
- Uint8 a = u->rst.dat[u->rst.ptr - 1], b = u->rst.dat[u->rst.ptr - 2]; |
|
| 1083 |
- u->rst.dat[u->rst.ptr] = b; |
|
| 1077 |
+ Uint8 a; |
|
| 1078 |
+ u->rst.dat[u->rst.ptr - 1]; |
|
| 1079 |
+ a = u->rst.dat[u->rst.ptr - 2]; |
|
| 1084 | 1080 |
#ifndef NO_STACK_CHECKS |
| 1085 | 1081 |
if(__builtin_expect(u->rst.ptr < 2, 0)) {
|
| 1086 | 1082 |
u->rst.error = 1; |
| 1087 | 1083 |
goto error; |
| 1088 | 1084 |
} |
| 1089 |
- if(__builtin_expect(u->rst.ptr > 254, 0)) {
|
|
| 1090 |
- u->rst.error = 2; |
|
| 1091 |
- goto error; |
|
| 1092 |
- } |
|
| 1093 | 1085 |
#endif |
| 1094 |
- u->rst.ptr += 1; |
|
| 1086 |
+ u->rst.ptr -= 1; |
|
| 1095 | 1087 |
} |
| 1096 | 1088 |
break; |
| 1097 | 1089 |
case 0x47: /* ROTr */ |
| ... | ... |
@@ -1531,23 +1523,21 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 1531 | 1523 |
#endif |
| 1532 | 1524 |
} |
| 1533 | 1525 |
break; |
| 1534 |
- case 0x66: /* OVR2r */ |
|
| 1535 |
- __asm__("evaluxn_66_OVR2r:");
|
|
| 1526 |
+ case 0x66: /* NIP2r */ |
|
| 1527 |
+ __asm__("evaluxn_66_NIP2r:");
|
|
| 1536 | 1528 |
{
|
| 1537 |
- Uint8 a = u->rst.dat[u->rst.ptr - 1], b = u->rst.dat[u->rst.ptr - 2], c = u->rst.dat[u->rst.ptr - 3], d = u->rst.dat[u->rst.ptr - 4]; |
|
| 1538 |
- u->rst.dat[u->rst.ptr] = d; |
|
| 1539 |
- u->rst.dat[u->rst.ptr + 1] = c; |
|
| 1529 |
+ Uint16 a; |
|
| 1530 |
+ (u->rst.dat[u->rst.ptr - 1] | (u->rst.dat[u->rst.ptr - 2] << 8)); |
|
| 1531 |
+ a = (u->rst.dat[u->rst.ptr - 3] | (u->rst.dat[u->rst.ptr - 4] << 8)); |
|
| 1532 |
+ u->rst.dat[u->rst.ptr - 4] = a >> 8; |
|
| 1533 |
+ u->rst.dat[u->rst.ptr - 3] = a & 0xff; |
|
| 1540 | 1534 |
#ifndef NO_STACK_CHECKS |
| 1541 | 1535 |
if(__builtin_expect(u->rst.ptr < 4, 0)) {
|
| 1542 | 1536 |
u->rst.error = 1; |
| 1543 | 1537 |
goto error; |
| 1544 | 1538 |
} |
| 1545 |
- if(__builtin_expect(u->rst.ptr > 253, 0)) {
|
|
| 1546 |
- u->rst.error = 2; |
|
| 1547 |
- goto error; |
|
| 1548 |
- } |
|
| 1549 | 1539 |
#endif |
| 1550 |
- u->rst.ptr += 2; |
|
| 1540 |
+ u->rst.ptr -= 2; |
|
| 1551 | 1541 |
} |
| 1552 | 1542 |
break; |
| 1553 | 1543 |
case 0x67: /* ROT2r */ |
| ... | ... |
@@ -2004,24 +1994,24 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 2004 | 1994 |
u->wst.ptr += 2; |
| 2005 | 1995 |
} |
| 2006 | 1996 |
break; |
| 2007 |
- case 0x86: /* OVRk */ |
|
| 2008 |
- __asm__("evaluxn_86_OVRk:");
|
|
| 1997 |
+ case 0x86: /* NIPk */ |
|
| 1998 |
+ __asm__("evaluxn_86_NIPk:");
|
|
| 2009 | 1999 |
{
|
| 2010 |
- Uint8 a = u->wst.dat[u->wst.ptr - 1], b = u->wst.dat[u->wst.ptr - 2]; |
|
| 2011 |
- u->wst.dat[u->wst.ptr] = b; |
|
| 2012 |
- u->wst.dat[u->wst.ptr + 1] = a; |
|
| 2013 |
- u->wst.dat[u->wst.ptr + 2] = b; |
|
| 2000 |
+ Uint8 a; |
|
| 2001 |
+ u->wst.dat[u->wst.ptr - 1]; |
|
| 2002 |
+ a = u->wst.dat[u->wst.ptr - 2]; |
|
| 2003 |
+ u->wst.dat[u->wst.ptr] = a; |
|
| 2014 | 2004 |
#ifndef NO_STACK_CHECKS |
| 2015 | 2005 |
if(__builtin_expect(u->wst.ptr < 2, 0)) {
|
| 2016 | 2006 |
u->wst.error = 1; |
| 2017 | 2007 |
goto error; |
| 2018 | 2008 |
} |
| 2019 |
- if(__builtin_expect(u->wst.ptr > 252, 0)) {
|
|
| 2009 |
+ if(__builtin_expect(u->wst.ptr > 254, 0)) {
|
|
| 2020 | 2010 |
u->wst.error = 2; |
| 2021 | 2011 |
goto error; |
| 2022 | 2012 |
} |
| 2023 | 2013 |
#endif |
| 2024 |
- u->wst.ptr += 3; |
|
| 2014 |
+ u->wst.ptr += 1; |
|
| 2025 | 2015 |
} |
| 2026 | 2016 |
break; |
| 2027 | 2017 |
case 0x87: /* ROTk */ |
| ... | ... |
@@ -2512,27 +2502,25 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 2512 | 2502 |
u->wst.ptr += 4; |
| 2513 | 2503 |
} |
| 2514 | 2504 |
break; |
| 2515 |
- case 0xa6: /* OVR2k */ |
|
| 2516 |
- __asm__("evaluxn_a6_OVR2k:");
|
|
| 2505 |
+ case 0xa6: /* NIP2k */ |
|
| 2506 |
+ __asm__("evaluxn_a6_NIP2k:");
|
|
| 2517 | 2507 |
{
|
| 2518 |
- Uint8 a = u->wst.dat[u->wst.ptr - 1], b = u->wst.dat[u->wst.ptr - 2], c = u->wst.dat[u->wst.ptr - 3], d = u->wst.dat[u->wst.ptr - 4]; |
|
| 2519 |
- u->wst.dat[u->wst.ptr] = d; |
|
| 2520 |
- u->wst.dat[u->wst.ptr + 1] = c; |
|
| 2521 |
- u->wst.dat[u->wst.ptr + 2] = b; |
|
| 2522 |
- u->wst.dat[u->wst.ptr + 3] = a; |
|
| 2523 |
- u->wst.dat[u->wst.ptr + 4] = d; |
|
| 2524 |
- u->wst.dat[u->wst.ptr + 5] = c; |
|
| 2508 |
+ Uint16 a; |
|
| 2509 |
+ (u->wst.dat[u->wst.ptr - 1] | (u->wst.dat[u->wst.ptr - 2] << 8)); |
|
| 2510 |
+ a = (u->wst.dat[u->wst.ptr - 3] | (u->wst.dat[u->wst.ptr - 4] << 8)); |
|
| 2511 |
+ u->wst.dat[u->wst.ptr] = a >> 8; |
|
| 2512 |
+ u->wst.dat[u->wst.ptr + 1] = a & 0xff; |
|
| 2525 | 2513 |
#ifndef NO_STACK_CHECKS |
| 2526 | 2514 |
if(__builtin_expect(u->wst.ptr < 4, 0)) {
|
| 2527 | 2515 |
u->wst.error = 1; |
| 2528 | 2516 |
goto error; |
| 2529 | 2517 |
} |
| 2530 |
- if(__builtin_expect(u->wst.ptr > 249, 0)) {
|
|
| 2518 |
+ if(__builtin_expect(u->wst.ptr > 253, 0)) {
|
|
| 2531 | 2519 |
u->wst.error = 2; |
| 2532 | 2520 |
goto error; |
| 2533 | 2521 |
} |
| 2534 | 2522 |
#endif |
| 2535 |
- u->wst.ptr += 6; |
|
| 2523 |
+ u->wst.ptr += 2; |
|
| 2536 | 2524 |
} |
| 2537 | 2525 |
break; |
| 2538 | 2526 |
case 0xa7: /* ROT2k */ |
| ... | ... |
@@ -3035,24 +3023,24 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 3035 | 3023 |
u->rst.ptr += 2; |
| 3036 | 3024 |
} |
| 3037 | 3025 |
break; |
| 3038 |
- case 0xc6: /* OVRkr */ |
|
| 3039 |
- __asm__("evaluxn_c6_OVRkr:");
|
|
| 3026 |
+ case 0xc6: /* NIPkr */ |
|
| 3027 |
+ __asm__("evaluxn_c6_NIPkr:");
|
|
| 3040 | 3028 |
{
|
| 3041 |
- Uint8 a = u->rst.dat[u->rst.ptr - 1], b = u->rst.dat[u->rst.ptr - 2]; |
|
| 3042 |
- u->rst.dat[u->rst.ptr] = b; |
|
| 3043 |
- u->rst.dat[u->rst.ptr + 1] = a; |
|
| 3044 |
- u->rst.dat[u->rst.ptr + 2] = b; |
|
| 3029 |
+ Uint8 a; |
|
| 3030 |
+ u->rst.dat[u->rst.ptr - 1]; |
|
| 3031 |
+ a = u->rst.dat[u->rst.ptr - 2]; |
|
| 3032 |
+ u->rst.dat[u->rst.ptr] = a; |
|
| 3045 | 3033 |
#ifndef NO_STACK_CHECKS |
| 3046 | 3034 |
if(__builtin_expect(u->rst.ptr < 2, 0)) {
|
| 3047 | 3035 |
u->rst.error = 1; |
| 3048 | 3036 |
goto error; |
| 3049 | 3037 |
} |
| 3050 |
- if(__builtin_expect(u->rst.ptr > 252, 0)) {
|
|
| 3038 |
+ if(__builtin_expect(u->rst.ptr > 254, 0)) {
|
|
| 3051 | 3039 |
u->rst.error = 2; |
| 3052 | 3040 |
goto error; |
| 3053 | 3041 |
} |
| 3054 | 3042 |
#endif |
| 3055 |
- u->rst.ptr += 3; |
|
| 3043 |
+ u->rst.ptr += 1; |
|
| 3056 | 3044 |
} |
| 3057 | 3045 |
break; |
| 3058 | 3046 |
case 0xc7: /* ROTkr */ |
| ... | ... |
@@ -3543,27 +3531,25 @@ uxn_eval(Uxn *u, Uint16 vec) |
| 3543 | 3531 |
u->rst.ptr += 4; |
| 3544 | 3532 |
} |
| 3545 | 3533 |
break; |
| 3546 |
- case 0xe6: /* OVR2kr */ |
|
| 3547 |
- __asm__("evaluxn_e6_OVR2kr:");
|
|
| 3534 |
+ case 0xe6: /* NIP2kr */ |
|
| 3535 |
+ __asm__("evaluxn_e6_NIP2kr:");
|
|
| 3548 | 3536 |
{
|
| 3549 |
- Uint8 a = u->rst.dat[u->rst.ptr - 1], b = u->rst.dat[u->rst.ptr - 2], c = u->rst.dat[u->rst.ptr - 3], d = u->rst.dat[u->rst.ptr - 4]; |
|
| 3550 |
- u->rst.dat[u->rst.ptr] = d; |
|
| 3551 |
- u->rst.dat[u->rst.ptr + 1] = c; |
|
| 3552 |
- u->rst.dat[u->rst.ptr + 2] = b; |
|
| 3553 |
- u->rst.dat[u->rst.ptr + 3] = a; |
|
| 3554 |
- u->rst.dat[u->rst.ptr + 4] = d; |
|
| 3555 |
- u->rst.dat[u->rst.ptr + 5] = c; |
|
| 3537 |
+ Uint16 a; |
|
| 3538 |
+ (u->rst.dat[u->rst.ptr - 1] | (u->rst.dat[u->rst.ptr - 2] << 8)); |
|
| 3539 |
+ a = (u->rst.dat[u->rst.ptr - 3] | (u->rst.dat[u->rst.ptr - 4] << 8)); |
|
| 3540 |
+ u->rst.dat[u->rst.ptr] = a >> 8; |
|
| 3541 |
+ u->rst.dat[u->rst.ptr + 1] = a & 0xff; |
|
| 3556 | 3542 |
#ifndef NO_STACK_CHECKS |
| 3557 | 3543 |
if(__builtin_expect(u->rst.ptr < 4, 0)) {
|
| 3558 | 3544 |
u->rst.error = 1; |
| 3559 | 3545 |
goto error; |
| 3560 | 3546 |
} |
| 3561 |
- if(__builtin_expect(u->rst.ptr > 249, 0)) {
|
|
| 3547 |
+ if(__builtin_expect(u->rst.ptr > 253, 0)) {
|
|
| 3562 | 3548 |
u->rst.error = 2; |
| 3563 | 3549 |
goto error; |
| 3564 | 3550 |
} |
| 3565 | 3551 |
#endif |
| 3566 |
- u->rst.ptr += 6; |
|
| 3552 |
+ u->rst.ptr += 2; |
|
| 3567 | 3553 |
} |
| 3568 | 3554 |
break; |
| 3569 | 3555 |
case 0xe7: /* ROT2kr */ |