LEFT | RIGHT |
(no file at all) | |
1 // Derived from Inferno utils/6c/list.c | 1 // Derived from Inferno utils/6c/list.c |
2 // http://code.google.com/p/inferno-os/source/browse/utils/6c/list.c | 2 // http://code.google.com/p/inferno-os/source/browse/utils/6c/list.c |
3 // | 3 // |
4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. | 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) | 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) |
6 // Portions Copyright © 1997-1999 Vita Nuova Limited | 6 // Portions Copyright © 1997-1999 Vita Nuova Limited |
7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) | 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) |
8 // Portions Copyright © 2004,2006 Bruce Ellis | 8 // Portions Copyright © 2004,2006 Bruce Ellis |
9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) | 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) |
10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others | 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 snprint(str, sizeof(str), "$%lld,%R", a->offset, i); | 100 snprint(str, sizeof(str), "$%lld,%R", a->offset, i); |
101 else | 101 else |
102 snprint(str, sizeof(str), "%R", i); | 102 snprint(str, sizeof(str), "%R", i); |
103 break; | 103 break; |
104 | 104 |
105 case D_NONE: | 105 case D_NONE: |
106 str[0] = 0; | 106 str[0] = 0; |
107 break; | 107 break; |
108 | 108 |
109 case D_BRANCH: | 109 case D_BRANCH: |
110 » » if(a->branch == nil) | 110 » » if(a->u.branch == nil) |
111 snprint(str, sizeof(str), "<nil>"); | 111 snprint(str, sizeof(str), "<nil>"); |
112 else | 112 else |
113 » » » snprint(str, sizeof(str), "%d", a->branch->loc); | 113 » » » snprint(str, sizeof(str), "%d", a->u.branch->loc); |
114 break; | 114 break; |
115 | 115 |
116 case D_EXTERN: | 116 case D_EXTERN: |
117 snprint(str, sizeof(str), "%S+%lld(SB)", a->sym, a->offset); | 117 snprint(str, sizeof(str), "%S+%lld(SB)", a->sym, a->offset); |
118 break; | 118 break; |
119 | 119 |
120 case D_STATIC: | 120 case D_STATIC: |
121 snprint(str, sizeof(str), "%S<>+%lld(SB)", a->sym, a->offset); | 121 snprint(str, sizeof(str), "%S<>+%lld(SB)", a->sym, a->offset); |
122 break; | 122 break; |
123 | 123 |
124 case D_AUTO: | 124 case D_AUTO: |
125 snprint(str, sizeof(str), "%S+%lld(SP)", a->sym, a->offset); | 125 snprint(str, sizeof(str), "%S+%lld(SP)", a->sym, a->offset); |
126 break; | 126 break; |
127 | 127 |
128 case D_PARAM: | 128 case D_PARAM: |
129 snprint(str, sizeof(str), "%S+%lld(FP)", a->sym, a->offset); | 129 snprint(str, sizeof(str), "%S+%lld(FP)", a->sym, a->offset); |
130 break; | 130 break; |
131 | 131 |
132 case D_CONST: | 132 case D_CONST: |
133 if(fp->flags & FmtLong) { | 133 if(fp->flags & FmtLong) { |
134 d1 = a->offset & 0xffffffffLL; | 134 d1 = a->offset & 0xffffffffLL; |
135 d2 = (a->offset>>32) & 0xffffffffLL; | 135 d2 = (a->offset>>32) & 0xffffffffLL; |
136 snprint(str, sizeof(str), "$%lud-%lud", (ulong)d1, (ulon
g)d2); | 136 snprint(str, sizeof(str), "$%lud-%lud", (ulong)d1, (ulon
g)d2); |
137 break; | 137 break; |
138 } | 138 } |
139 snprint(str, sizeof(str), "$%lld", a->offset); | 139 snprint(str, sizeof(str), "$%lld", a->offset); |
140 break; | 140 break; |
141 | 141 |
142 case D_FCONST: | 142 case D_FCONST: |
143 » » snprint(str, sizeof(str), "$(%.17e)", a->dval); | 143 » » snprint(str, sizeof(str), "$(%.17e)", a->u.dval); |
144 break; | 144 break; |
145 | 145 |
146 case D_SCONST: | 146 case D_SCONST: |
147 » » snprint(str, sizeof(str), "$\"%Y\"", a->sval); | 147 » » snprint(str, sizeof(str), "$\"%Y\"", a->u.sval); |
148 break; | 148 break; |
149 | 149 |
150 case D_ADDR: | 150 case D_ADDR: |
151 a->type = a->index; | 151 a->type = a->index; |
152 a->index = D_NONE; | 152 a->index = D_NONE; |
153 snprint(str, sizeof(str), "$%D", a); | 153 snprint(str, sizeof(str), "$%D", a); |
154 a->index = a->type; | 154 a->index = a->type; |
155 a->type = D_ADDR; | 155 a->type = D_ADDR; |
156 goto conv; | 156 goto conv; |
157 } | 157 } |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 *p++ = 't'; | 352 *p++ = 't'; |
353 continue; | 353 continue; |
354 } | 354 } |
355 *p++ = (c>>6) + '0'; | 355 *p++ = (c>>6) + '0'; |
356 *p++ = ((c>>3) & 7) + '0'; | 356 *p++ = ((c>>3) & 7) + '0'; |
357 *p++ = (c & 7) + '0'; | 357 *p++ = (c & 7) + '0'; |
358 } | 358 } |
359 *p = 0; | 359 *p = 0; |
360 return fmtstrcpy(fp, str); | 360 return fmtstrcpy(fp, str); |
361 } | 361 } |
LEFT | RIGHT |