Lines Matching +full:0 +full:- +full:9 +full:a +full:- +full:f

4    a special .s object to link to the image.
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 You should have received a copy of the GNU General Public License
43 struct _btfixup *f; member
58 int last = 0;
60 unsigned long lastfoffset = -1;
74 for (i = 0; i < last; i++) { in find()
80 array[last].setinitval = 0; in find()
88 return array + last - 1; in find()
93 for (mode = 0;; mode++) in set_mode()
94 if (buffer[mode] < '0' || buffer[mode] > '9') in set_mode()
108 btfixup *f; in main() local
130 *p = 0; in main()
137 if (mode == 0) in main()
140 if (p) *p = 0; in main()
143 if (strncmp (buffer + mode, " R_SPARC_", 9)) in main()
145 nbase = 27 - 8 + mode; in main()
149 case 'f': /* CALL */ in main()
152 case 'a': /* HALF */ in main()
160 if (p) *p = 0; in main()
179 (strcmp (sect, "__ksymtab") || buffer[nbase+3] != 'f')) { in main()
180 if (buffer[nbase+3] == 'f') in main()
198 initval = 0; in main()
201 if (p[8] != '0' || p[9] != 'x') { in main()
202 …fprintf(stderr, "Pre-initialized values can be only initialized with hexadecimal constants startin… in main()
207 …fprintf(stderr, "Pre-initialized values can be only in the form name__btset_0xXXXXXXXX where X are… in main()
211 *p = 0; in main()
213 f = find(buffer[nbase+3], buffer + shift); in main()
217 case 'f': in main()
219 fprintf(stderr, "Cannot use pre-initialized fixups for calls\n%s\n", buffer); in main()
223 if (strncmp (buffer + mode+9, "32 ", 10)) { in main()
227 } else if (strncmp (buffer + mode+9, "WDISP30 ", 10) && in main()
228 strncmp (buffer + mode+9, "HI22 ", 10) && in main()
229 strncmp (buffer + mode+9, "LO10 ", 10)) { in main()
236 fprintf(stderr, "Cannot use pre-initialized fixups for blackboxes\n%s\n", buffer); in main()
239 if (strncmp (buffer + mode+9, "HI22 ", 10)) { in main()
245 if (initval + 0x1000 >= 0x2000) { in main()
249 if (strncmp (buffer + mode+9, "13 ", 10)) { in main()
254 case 'a': in main()
255 if (initval + 0x1000 >= 0x2000 && (initval & 0x3ff)) { in main()
259 if (strncmp (buffer + mode+9, "13 ", 10)) { in main()
265 if (initval & 0x3ff) { in main()
269 if (strncmp (buffer + mode+9, "HI22 ", 10)) { in main()
276 fprintf(stderr, "Cannot use pre-initialized fixups for INT\n%s\n", buffer); in main()
279 if (strncmp (buffer + mode+9, "HI22 ", 10) && strncmp (buffer + mode+9, "LO10 ", 10)) { in main()
285 if (!f->setinitval) { in main()
286 f->initval = initval; in main()
288 f->initvalstr = strdup(initvalstr); in main()
289 if (!f->initvalstr) fatal(); in main()
291 f->setinitval = 1; in main()
292 } else if (f->initval != initval) { in main()
294 f->name, f->initvalstr ? : "0x00000000", buffer); in main()
296 } else if (initval && strcmp(f->initvalstr, initvalstr)) { in main()
299 f->name, f->initvalstr, buffer); in main()
303 …if (q != buffer + mode || (!offset && (mode == 8 ? strncmp (buffer, "00000000 ", 9) : strncmp (buf… in main()
307 for (k = 0, r = f->rel, rr = &f->rel; r; rr = &r->next, r = r->next, k++) in main()
308 if (r->offset == offset && !strcmp(r->sect, sect)) { in main()
314 (*rr)->offset = offset; in main()
315 (*rr)->f = NULL; in main()
316 if (buffer[nbase+3] == 'f') { in main()
317 lastf = f; in main()
321 (*rr)->f = lastf; in main()
322 (*rr)->frel = lastfrelno; in main()
324 (*rr)->sect = sect; in main()
325 (*rr)->next = NULL; in main()
330 for (i = 0; i < last; i++) { in main()
331 f = array + i; in main()
332 printf("\t.global\t___%cs_%s\n", f->type, f->name); in main()
333 if (f->type == 'f') in main()
334 printf("___%cs_%s:\n\t.word 0x%08x,0,0,", f->type, f->name, f->type << 24); in main()
336 printf("___%cs_%s:\n\t.word 0x%08x,0,", f->type, f->name, f->type << 24); in main()
337 for (j = 0, r = f->rel; r != NULL; j++, r = r->next); in main()
341 printf("0\n"); in main()
342 for (r = f->rel, j--; r != NULL; j--, r = r->next) { in main()
343 if (!strcmp (r->sect, ".text")) in main()
344 printf ("_stext+0x%08lx", r->offset); in main()
345 else if (!strcmp (r->sect, ".init.text")) in main()
346 printf ("__init_begin+0x%08lx", r->offset); in main()
347 else if (!strcmp (r->sect, "__ksymtab")) in main()
348 printf ("__start___ksymtab+0x%08lx", r->offset); in main()
349 else if (!strcmp (r->sect, ".fixup")) in main()
350 printf ("__start___fixup+0x%08lx", r->offset); in main()
353 if (f->type == 'f' || !r->f) in main()
354 printf (",0"); in main()
356 printf (",___fs_%s+0x%08x", r->f->name, (4 + r->frel*2)*4 + 4); in main()
364 for (i = 0; i < last; i++) { in main()
365 f = array + i; in main()
366 if (f->type == 'f') { in main()
367 printf("\t.global\t___f_%s\n", f->name); in main()
368 printf("___f_%s:\n", f->name); in main()
372 for (i = 0; i < last; i++) { in main()
373 f = array + i; in main()
374 if (f->type != 'f') { in main()
375 if (!f->initval) { in main()
376 printf("\t.global\t___%c_%s\n", f->type, f->name); in main()
377 printf("___%c_%s = 0\n", f->type, f->name); in main()
379 printf("\t.global\t___%c_%s__btset_0x%s\n", f->type, f->name, f->initvalstr); in main()
380 printf("___%c_%s__btset_0x%s = 0x%08x\n", f->type, f->name, f->initvalstr, f->initval); in main()
385 exit(0); in main()