diff options
Diffstat (limited to 'utils/qc/gc.h')
| -rw-r--r-- | utils/qc/gc.h | 16 |
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); |
