summaryrefslogtreecommitdiff
path: root/notes/duplexes
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2025-04-13 18:59:27 -0700
committeriximeow <me@iximeow.net>2025-04-13 18:59:27 -0700
commit2941adf64a78dbcc67b541c79c94144e7da0fddb (patch)
tree1e354d73eb49cb0dd79548eb7e85f343e70e6de9 /notes/duplexes
parentb1781d8316c5d19961d82030dcccd46fae0da471 (diff)
some more notes, but a bit of a mess
Diffstat (limited to 'notes/duplexes')
-rw-r--r--notes/duplexes35
1 files changed, 35 insertions, 0 deletions
diff --git a/notes/duplexes b/notes/duplexes
new file mode 100644
index 0000000..fb20fe4
--- /dev/null
+++ b/notes/duplexes
@@ -0,0 +1,35 @@
+subinstruction class L2
+
+00___________ memh
+01___________ memuh
+10___________ memb
+1110_________ memw
+11110________ memd
+1111100000000 deallocframe
+1111101000000 return
+1111111000000 jump r31
+11111010001PP if ([!]p0[.new]) dealloc_return:[n]t
+11111110001PP if ([!]p0[.new]) jumpr:[n]t r31
+
+subinstruction class S2
+
+00___________ memh
+0100_________ memw
+0101_________ memd
+1000_________ memw #{0,1}
+1001_________ memb #{0,1}
+1110_________ allocframe
+
+subinstruction class A
+
+00___________ Rx = add(Rx, #i)
+010__________ Rd = #i
+011__________ Rd = add(r29, #i)
+10___________ Rd = {Rs,add,sxth,sxtb,zxth,zxtb}
+11000________ Rx = add(Rx, Rs)
+11001________ p0 = cmp.eq(Rs, #i)
+110100000____ Rd = #-1
+1101001PP____ if ([!]p0[.new]) Rd = #0
+111000_______ Rdd = combine(#i, #i)
+11101________ Rdd = combine(Rs, #0)
+