summaryrefslogtreecommitdiff
path: root/utils/qc/gc.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/qc/gc.h')
-rw-r--r--utils/qc/gc.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/utils/qc/gc.h b/utils/qc/gc.h
index bf4e9091..16aab0ba 100644
--- a/utils/qc/gc.h
+++ b/utils/qc/gc.h
@@ -58,6 +58,7 @@ struct Case
long val;
long label;
char def;
+ char isv;
};
#define C ((Case*)0)
@@ -129,6 +130,7 @@ struct Rgn
};
EXTERN long breakpc;
+EXTERN long nbreak;
EXTERN Case* cases;
EXTERN Node constnode;
EXTERN Node fconstnode;
@@ -141,10 +143,10 @@ EXTERN int hintabsize;
EXTERN long maxargsafe;
EXTERN Multab multab[20];
EXTERN int mnstring;
-EXTERN int retok;
EXTERN Node* nodrat;
EXTERN Node* nodret;
EXTERN Node* nodsafe;
+EXTERN Node* nodretv;
EXTERN long nrathole;
EXTERN long nstring;
EXTERN Prog* p;
@@ -244,8 +246,11 @@ void regind(Node*, Node*);
void gprep(Node*, Node*);
void raddr(Node*, Prog*);
void naddr(Node*, Adr*);
+void gloadhi(Node*, Node*, int);
+void gloadlo(Node*, Node*, int);
void gmove(Node*, Node*);
void gins(int a, Node*, Node*);
+void gins3(int a, Node*, Node*, Node*);
void gopcode(int, Node*, Node*, Node*);
int samaddr(Node*, Node*);
void gbranch(int);
@@ -253,6 +258,10 @@ void patch(Prog*, long);
int sconst(Node*);
int sval(long);
int uconst(Node*);
+long hi64v(Node*);
+long lo64v(Node*);
+Node* hi64(Node*);
+Node* lo64(Node*);
void gpseudo(int, Sym*, Node*);
/*
@@ -260,8 +269,9 @@ void gpseudo(int, Sym*, Node*);
*/
int swcmp(void*, void*);
void doswit(Node*);
-void swit1(C1*, int, long, Node*, Node*);
-void cas(void);
+void swit1(C1*, int, long, Node*);
+void swit2(C1*, int, long, Node*, Node*);
+void casf(void);
void bitload(Node*, Node*, Node*, Node*, Node*);
void bitstore(Node*, Node*, Node*, Node*, Node*);
long outstring(char*, long);