summary refs log tree commit diff
path: root/lisc/lisc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r--lisc/lisc.h6
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 *);