diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-03-17 13:41:12 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-03-17 13:41:12 -0400 |
commit | 240cfcd5cdda9301457867f9d26edcd0cf272b24 (patch) | |
tree | 83cf01d43ad41163c96c34f16f2d24a4e8f9eff9 /lisc/lisc.h | |
parent | 2889d44f24d8017f527f6f5aa1163065cc57e994 (diff) | |
download | roux-240cfcd5cdda9301457867f9d26edcd0cf272b24.tar.gz |
support return of structs
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r-- | lisc/lisc.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h index 5374bdd..c730b1f 100644 --- a/lisc/lisc.h +++ b/lisc/lisc.h @@ -297,6 +297,7 @@ enum Jmp { JRets, JRetd, JRetc, +#define isret(j) (JRet0 <= j && j <= JRetc) JJmp, JJnz, JXJc, @@ -419,7 +420,8 @@ struct Fn { int ncon; int nmem; int nblk; - int retty; + int retty; /* index in typ[], -1 if no aggregate return */ + Ref retr; Blk **rpo; bits reg; int slot; @@ -483,7 +485,7 @@ Ins *icpy(Ins *, Ins *, ulong); void *vnew(ulong, size_t); void vgrow(void *, ulong); int phicls(int, Tmp *); -Ref newtmp(char *, Fn *); +Ref newtmp(char *, int, Fn *); Ref getcon(int64_t, Fn *); void addcon(Con *, Con *); void dumpts(BSet *, Tmp *, FILE *); |