diff options
author | Bad Diode <bd@badd10de.dev> | 2023-08-29 20:41:30 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-08-29 20:41:30 +0200 |
commit | b4e6d175934513d4b0bd611d321a5d031dafc1a9 (patch) | |
tree | 8485fe1519b7b4bc14415f1023d6ac81b25deb57 /src/uxn-core.s | |
parent | e2a7888c638d6f1587100713be6414007890e458 (diff) | |
download | uxngba-b4e6d175934513d4b0bd611d321a5d031dafc1a9.tar.gz uxngba-b4e6d175934513d4b0bd611d321a5d031dafc1a9.zip |
Fix signed issue with immediate jump ops
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r-- | src/uxn-core.s | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/uxn-core.s b/src/uxn-core.s index ba05cc9..f110b61 100644 --- a/src/uxn-core.s +++ b/src/uxn-core.s | |||
@@ -854,16 +854,19 @@ jci: | |||
854 | ldrb r5, [r0], #1 | 854 | ldrb r5, [r0], #1 |
855 | ldrb r3, [r0], #1 | 855 | ldrb r3, [r0], #1 |
856 | orr r3, r3, r5, lsl #8 | 856 | orr r3, r3, r5, lsl #8 |
857 | lsl r3, r3, #16 | ||
858 | asr r3, r3, #16 | ||
857 | wpop8 r4 | 859 | wpop8 r4 |
858 | cmp r4, #0 | 860 | cmp r4, #0 |
859 | addne r0, r3 | 861 | addne r0, r3 |
860 | addeq r0, #2 | ||
861 | b uxn_decode | 862 | b uxn_decode |
862 | 863 | ||
863 | jmi: | 864 | jmi: |
864 | ldrb r5, [r0], #1 | 865 | ldrb r5, [r0], #1 |
865 | ldrb r3, [r0], #1 | 866 | ldrb r3, [r0], #1 |
866 | orr r3, r3, r5, lsl #8 | 867 | orr r3, r3, r5, lsl #8 |
868 | lsl r3, r3, #16 | ||
869 | asr r3, r3, #16 | ||
867 | add r0, r3 | 870 | add r0, r3 |
868 | b uxn_decode | 871 | b uxn_decode |
869 | 872 | ||
@@ -871,6 +874,8 @@ jsi: | |||
871 | ldrb r5, [r0], #1 | 874 | ldrb r5, [r0], #1 |
872 | ldrb r3, [r0], #1 | 875 | ldrb r3, [r0], #1 |
873 | orr r3, r3, r5, lsl #8 | 876 | orr r3, r3, r5, lsl #8 |
877 | lsl r3, r3, #16 | ||
878 | asr r3, r3, #16 | ||
874 | mov r4, r0 | 879 | mov r4, r0 |
875 | rpush16 r4 | 880 | rpush16 r4 |
876 | add r0, r3 | 881 | add r0, r3 |