This commit is contained in:
Kartik Agaram 2020-03-11 20:56:27 -07:00
parent 0aa7420745
commit afc0be47a5
2 changed files with 5 additions and 2 deletions

View File

@ -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

View File

@ -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