about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-03-11 20:56:27 -0700
committerKartik Agaram <vc@akkartik.com>2020-03-11 20:56:27 -0700
commitafc0be47a56286385e9747250b724c5497f50559 (patch)
tree9bbef36e9074db0b6ff3479afd792fc78d4db7d7
parent0aa7420745e07f5f721efd75e1f73c8b1ea5aa42 (diff)
downloadmu-afc0be47a56286385e9747250b724c5497f50559.tar.gz
6129
-rw-r--r--mu_instructions4
-rw-r--r--mu_summary3
2 files changed, 5 insertions, 2 deletions
diff --git a/mu_instructions b/mu_instructions
index 9897d6c0..fa696f82 100644
--- a/mu_instructions
+++ b/mu_instructions
@@ -227,6 +227,8 @@ If a record (product) type T was defined to have elements a, b, c, ... of
 types T_a, T_b, T_c, ..., then accessing one of those elements f of type T_f:
 
 var/reg: (addr T_f) <- get var2/reg2: (addr F), f: field name => 8d/copy-addr *(reg2+offset(f))
-                            {.name="get",             .inouts=[reg2, f],                .subx-name="8d/copy-addr",          .rm32="*(" inouts[0] "+" offset(f) ")",     .r32=outputs[0]}
+                            {.name="get",             .inouts=[reg2, f],                .subx-name="8d/copy-address",       .rm32="*(" inouts[0] "+" offset(f) ")",     .r32=outputs[0]}
+var/reg: (addr T_f) <- get var2: (addr F), f: field name
+                            {.name="get",             .inouts=[reg2, f],                .subx-name="8d/copy-address",       .rm32="*(ebp+" inouts[0].stack-offset "+" offset(f) ")",  .r32=outputs[0]}
 
 vim:ft=c:nowrap
diff --git a/mu_summary b/mu_summary
index f15b6bd1..addfa340 100644
--- a/mu_summary
+++ b/mu_summary
@@ -207,5 +207,6 @@ Similarly, conditional loops:
 
 ## User-defined types
 
-  var/reg: (addr T_f) <- get var: (addr T), f
+  var/reg: (addr T_f) <- get var/reg: (addr T), f
     where record (product) type T has elements a, b, c, ... of types T_a, T_b, T_c, ...
+  var/reg: (addr T_f) <- get var: (addr T), f