OLD | NEW |
1 // Copyright 2009 The Go Authors. All rights reserved. | 1 // Copyright 2009 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef EXTERN | 5 #ifndef EXTERN |
6 #define EXTERN extern | 6 #define EXTERN extern |
7 #endif | 7 #endif |
8 | 8 |
9 #include "../gc/go.h" | 9 #include "../gc/go.h" |
10 #include "../6l/6.out.h" | 10 #include "../6l/6.out.h" |
11 | 11 |
12 #define TEXTFLAG from.scale | 12 #define TEXTFLAG from.scale |
13 | 13 |
14 EXTERN int32 dynloc; | 14 EXTERN int32 dynloc; |
15 EXTERN uchar reg[D_NONE]; | 15 EXTERN uchar reg[D_NONE]; |
16 EXTERN int32 pcloc; // instruction counter | 16 EXTERN int32 pcloc; // instruction counter |
17 EXTERN Strlit emptystring; | 17 EXTERN Strlit emptystring; |
18 EXTERN Prog zprog; | 18 EXTERN Prog zprog; |
19 EXTERN Node* newproc; | 19 EXTERN Node* newproc; |
20 EXTERN Node* deferproc; | 20 EXTERN Node* deferproc; |
| 21 EXTERN Node* deferproc1; |
21 EXTERN Node* deferreturn; | 22 EXTERN Node* deferreturn; |
22 EXTERN Node* panicindex; | 23 EXTERN Node* panicindex; |
23 EXTERN Node* panicslice; | 24 EXTERN Node* panicslice; |
24 EXTERN Node* panicdiv; | 25 EXTERN Node* panicdiv; |
25 EXTERN Node* throwreturn; | 26 EXTERN Node* throwreturn; |
26 extern vlong unmappedzero; | 27 extern vlong unmappedzero; |
27 extern int addptr; | 28 extern int addptr; |
28 extern int cmpptr; | 29 extern int cmpptr; |
29 extern int movptr; | 30 extern int movptr; |
30 extern int leaptr; | 31 extern int leaptr; |
31 | 32 |
32 /* | 33 /* |
33 * ggen.c | 34 * ggen.c |
34 */ | 35 */ |
35 void compile(Node*); | 36 void compile(Node*); |
36 void gen(Node*); | 37 void gen(Node*); |
37 Node* lookdot(Node*, Node*, int); | 38 Node* lookdot(Node*, Node*, int); |
38 void cgen_as(Node*, Node*); | 39 void cgen_as(Node*, Node*); |
39 void» cgen_callmeth(Node*, int); | 40 void» cgen_callmeth(Node*, Node*, int); |
40 void» cgen_callinter(Node*, Node*, int); | 41 void» cgen_callinter(Node*, Node*, Node*, int); |
41 void cgen_proc(Node*, int); | 42 void cgen_proc(Node*, int); |
42 void cgen_callret(Node*, Node*); | 43 void cgen_callret(Node*, Node*); |
43 void cgen_div(int, Node*, Node*, Node*); | 44 void cgen_div(int, Node*, Node*, Node*); |
44 void cgen_bmul(int, Node*, Node*, Node*); | 45 void cgen_bmul(int, Node*, Node*, Node*); |
45 void cgen_hmul(Node*, Node*, Node*); | 46 void cgen_hmul(Node*, Node*, Node*); |
46 void cgen_shift(int, int, Node*, Node*, Node*); | 47 void cgen_shift(int, int, Node*, Node*, Node*); |
47 void cgen_dcl(Node*); | 48 void cgen_dcl(Node*); |
48 int needconvert(Type*, Type*); | 49 int needconvert(Type*, Type*); |
49 void genconv(Type*, Type*); | 50 void genconv(Type*, Type*); |
50 void allocparams(void); | 51 void allocparams(void); |
51 void checklabels(void); | 52 void checklabels(void); |
52 void ginscall(Node*, int); | 53 void ginscall(Node*, int); |
| 54 void ginscall1(Node*, Node*, int); |
53 int gen_as_init(Node*); | 55 int gen_as_init(Node*); |
54 void clearslim(Node*); | 56 void clearslim(Node*); |
55 | 57 |
56 /* | 58 /* |
57 * cgen.c | 59 * cgen.c |
58 */ | 60 */ |
59 void agen(Node*, Node*); | 61 void agen(Node*, Node*); |
60 void agenr(Node*, Node*, Node*); | 62 void agenr(Node*, Node*, Node*); |
61 void cgenr(Node*, Node*, Node*); | 63 void cgenr(Node*, Node*, Node*); |
62 void igen(Node*, Node*, Node*); | 64 void igen(Node*, Node*, Node*); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 */ | 117 */ |
116 void datastring(char*, int, Addr*); | 118 void datastring(char*, int, Addr*); |
117 void datagostring(Strlit*, Addr*); | 119 void datagostring(Strlit*, Addr*); |
118 | 120 |
119 /* | 121 /* |
120 * list.c | 122 * list.c |
121 */ | 123 */ |
122 void listinit(void); | 124 void listinit(void); |
123 | 125 |
124 void zaddr(Biobuf*, Addr*, int, int); | 126 void zaddr(Biobuf*, Addr*, int, int); |
OLD | NEW |