summaryrefslogtreecommitdiff
path: root/6/asm.h
diff options
context:
space:
mode:
Diffstat (limited to '6/asm.h')
-rw-r--r--6/asm.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/6/asm.h b/6/asm.h
index 447ee7a..fc0b4c6 100644
--- a/6/asm.h
+++ b/6/asm.h
@@ -53,11 +53,16 @@ typedef enum {
} PassIn;
typedef enum {
- RetVoid,
- RetReg,
- RetSmallAggregate,
- RetBig,
-} RetType;
+ ArgVoid,
+ ArgReg, /* Either int or flt, depending on Loc* type */
+ ArgSmallAggr_Int,
+ ArgSmallAggr_Flt,
+ ArgSmallAggr_Int_Int,
+ ArgSmallAggr_Flt_Int,
+ ArgSmallAggr_Int_Flt,
+ ArgSmallAggr_Flt_Flt,
+ ArgBig,
+} ArgType;
typedef enum {
Classbad,
@@ -331,9 +336,8 @@ size_t size(Node *n);
ssize_t tyoffset(Type *ty, Node *memb);
ssize_t offset(Node *aggr, Node *memb);
size_t countargs(Type *t);
-void classify(Type *t, PassIn *p);
+ArgType classify(Type *t);
int isaggregate(Type *t);
-RetType howreturned(Type *t);
int stacknode(Node *n);
int floatnode(Node *n);
void breakhere();