summaryrefslogtreecommitdiff
path: root/src/cmd/5c/gc.h
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-07-07 10:07:15 -0700
committerRuss Cox <rsc@golang.org>2009-07-07 10:07:15 -0700
commita2e017d2672bc5fe120b8d51406736e15f2cb67c (patch)
tree8dc5fa7a0e19c1a4bfdbca423143523fea7f2f54 /src/cmd/5c/gc.h
parent5581778ef1e5e02cc643ebb85f65762dc85f1509 (diff)
downloadgolang-a2e017d2672bc5fe120b8d51406736e15f2cb67c.tar.gz
move 6c/pgen.c, 6c/pswt.c into cc
and make 5c, 8c use them. centralizes reachability analysis and switch generation. now 8c doesn't have spurious warnings in pkg/runtime. R=ken OCL=31266 CL=31266
Diffstat (limited to 'src/cmd/5c/gc.h')
-rw-r--r--src/cmd/5c/gc.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cmd/5c/gc.h b/src/cmd/5c/gc.h
index 297a6073e..9aa7681b2 100644
--- a/src/cmd/5c/gc.h
+++ b/src/cmd/5c/gc.h
@@ -28,6 +28,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+
#include "../cc/cc.h"
#include "../5l/5.out.h"
@@ -93,6 +94,7 @@ struct Case
int32 val;
int32 label;
char def;
+ char isv;
};
#define C ((Case*)0)
@@ -165,6 +167,7 @@ struct Rgn
};
EXTERN int32 breakpc;
+EXTERN int32 nbreak;
EXTERN Case* cases;
EXTERN Node constnode;
EXTERN Node fconstnode;
@@ -243,17 +246,20 @@ void noretval(int);
void usedset(Node*, int);
void xcom(Node*);
int bcomplex(Node*, Node*);
+Prog* gtext(Sym*, int32);
+vlong argsize(void);
/*
* cgen.c
*/
-void cgen(Node*, Node*, int);
+void cgen(Node*, Node*);
void reglcgen(Node*, Node*, Node*);
void lcgen(Node*, Node*);
void bcgen(Node*, int);
void boolgen(Node*, int, Node*);
void sugen(Node*, Node*, int32);
void layout(Node*, Node*, int, int, Node*);
+void cgenrel(Node*, Node*);
/*
* txt.c
@@ -296,7 +302,7 @@ void gpseudo(int, Sym*, Node*);
*/
int swcmp(const void*, const void*);
void doswit(Node*);
-void swit1(C1*, int, int32, Node*, Node*);
+void swit1(C1*, int, int32, Node*);
void cas(void);
void bitload(Node*, Node*, Node*, Node*, Node*);
void bitstore(Node*, Node*, Node*, Node*, Node*);