implement a more readable bit mask syntax, add (ldXX Wr Rd Rd) with separate dest and both sources

This commit is contained in:
2020-10-17 14:54:51 +02:00
parent 26616e20cb
commit 3999c51eb7
19 changed files with 602 additions and 310 deletions
+4 -4
View File
@@ -104,16 +104,16 @@
(proc rd4
; Read 4 bytes as little endian
(ld8 r0 @cin_r)
(ld8/8 r0 @cin_r)
(ld8/16 r0 @cin_r)
(ld8/24 r0 @cin_r)
(ld8 r0:8 @cin_r)
(ld8 r0:16 @cin_r)
(ld8 r0:24 @cin_r)
(ret r0)
)
(proc rd2
; Read 2 bytes as little endian
(ld8 r0 @cin_r)
(ld8/8 r0 @cin_r)
(ld8 r0:8 @cin_r)
(ret r0)
)
)
+2 -2
View File
@@ -26,10 +26,10 @@
(clz32 r0 0xFF)
(cmp r0 24 (ne? (fault "9")))
(clz32/16 r0 0x00ff_0000_0000)
(clz32 r0 0x00ff_0000_0000:16)
(cmp r0 8 (ne? (fault "10")))
(clz32/16 r0 0x0000_0000_0000)
(clz32 r0 0x0000_0000_0000:16)
(cmp r0 32 (ne? (fault "11")))
(clo r0 0)
@@ -12,11 +12,15 @@
(cmp r0 0x11223344_5566778d (ne? (fault "3")))
(ld r0 0x11223344_55667788)
(ld32/32 r0 0xaabbccdd)
(ld32 r0:32 0xaabbccdd)
(cmp r0 0xaabbccdd_55667788 (ne? (fault "4")))
; ldX supports number literals, and can take 3 arguments to combine 2 and place the result in the 3rd
(ld24 r0 0xf0000000_0000abcd:32 0x77aabbcc)
(cmp r0 0xf0aabbcc_0000abcd (ne? (fault "4b")))
(ld r0 0x11223344_55667788)
(ld32/16/32 r0 0xaabbccdd_00000000)
(ld32 r0:16 0xaabbccdd_00000000:32)
(cmp r0 0x1122aabb_ccdd7788 (ne? (fault "5")))
(ld r0 0x11223344_55667788)
@@ -27,13 +31,13 @@
(ld r0 0x11223344_55667788)
(ld r1 0xaabbccdd_eeff9900)
(xch16/32 r0 r1)
(xch16 r0:32 r1)
(cmp r0 0x11229900_55667788 (ne? (fault "7")))
(cmp r1 0xaabbccdd_eeff3344 (ne? (fault "7")))
(ld r0 0x11223344_55667788)
(ld r1 0xaabbccdd_eeff9900)
(xch16/32/16 r0 r1)
(xch16 r0:32 r1:16)
(cmp r0 0x1122eeff_55667788 (ne? (fault "7")))
(cmp r1 0xaabbccdd_33449900 (ne? (fault "7")))
)