data2s.c - vx32 - Local 9vx git repository for patches.
(HTM) git clone git://r-36.net/vx32
(DIR) Log
(DIR) Files
(DIR) Refs
---
data2s.c (791B)
---
1 /*
2 * New file, replaces the Plan 9 version of data2s.
3 * This one emits GNU assembler syntax.
4 */
5
6 #include <stdio.h>
7 #include <stdlib.h>
8
9 #ifdef __APPLE__
10 #define prefix "_" /* go back in time */
11 #else
12 #define prefix ""
13 #endif
14
15 int
16 main(int argc, char *argv[])
17 {
18 long len, slen;
19 int c;
20
21 if(argc != 2){
22 fprintf(stderr, "usage: data2s name\n");
23 exit(1);
24 }
25 printf(".data\n");
26 printf(".globl %s%scode\n", prefix, argv[1]);
27 printf(".globl %s%slen\n", prefix, argv[1]);
28 printf("%s%scode:\n", prefix, argv[1]);
29 for(len=0; (c=fgetc(stdin))!=EOF; len++){
30 if((len&7) == 0)
31 printf(".byte");
32 else
33 printf(",");
34 printf(" %#x", c&0xff);
35 if((len&7) == 7)
36 printf("\n");
37 }
38 printf("\n\n.p2align 2\n%s%slen:\n", prefix, argv[1]);
39 printf(".long %d\n", (int)len);
40 return 0;
41 }