OLD | NEW |
1 /****************************************************************************** | 1 /****************************************************************************** |
2 * Copyright (C) 2009-2014, International Business Machines | 2 * Copyright (C) 2009-2014, International Business Machines |
3 * Corporation and others. All Rights Reserved. | 3 * Corporation and others. All Rights Reserved. |
4 ******************************************************************************* | 4 ******************************************************************************* |
5 */ | 5 */ |
6 #include "unicode/utypes.h" | 6 #include "unicode/utypes.h" |
7 | 7 |
8 #if U_PLATFORM_HAS_WIN32_API | 8 #if U_PLATFORM_HAS_WIN32_API |
9 # define VC_EXTRALEAN | 9 # define VC_EXTRALEAN |
10 # define WIN32_LEAN_AND_MEAN | 10 # define WIN32_LEAN_AND_MEAN |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 const char *footer; | 112 const char *footer; |
113 int8_t hexType; /* HEX_0X or HEX_0h */ | 113 int8_t hexType; /* HEX_0X or HEX_0h */ |
114 } assemblyHeader[] = { | 114 } assemblyHeader[] = { |
115 /* For gcc assemblers, the meaning of .align changes depending on the */ | 115 /* For gcc assemblers, the meaning of .align changes depending on the */ |
116 /* hardware, so we use .balign 16 which always means 16 bytes. */ | 116 /* hardware, so we use .balign 16 which always means 16 bytes. */ |
117 /* https://sourceware.org/binutils/docs/as/Pseudo-Ops.html */ | 117 /* https://sourceware.org/binutils/docs/as/Pseudo-Ops.html */ |
118 {"gcc", | 118 {"gcc", |
119 ".globl %s\n" | 119 ".globl %s\n" |
120 "\t.section .note.GNU-stack,\"\",%%progbits\n" | 120 "\t.section .note.GNU-stack,\"\",%%progbits\n" |
121 "\t.section .rodata\n" | 121 "\t.section .rodata\n" |
122 "\t.balign 16\n" | 122 "\t.balign 16\n" |
| 123 /* The 3 lines below are added for Chrome. */ |
| 124 "#ifdef U_HIDE_DATA_SYMBOL\n" |
| 125 "\t.hidden %s\n" |
| 126 "#endif\n" |
123 "\t.type %s,%%object\n" | 127 "\t.type %s,%%object\n" |
124 "%s:\n\n", | 128 "%s:\n\n", |
125 | 129 |
126 ".long ","",HEX_0X | 130 ".long ","",HEX_0X |
127 }, | 131 }, |
128 {"gcc-darwin", | 132 {"gcc-darwin", |
129 /*"\t.section __TEXT,__text,regular,pure_instructions\n" | 133 /*"\t.section __TEXT,__text,regular,pure_instructions\n" |
130 "\t.section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32\n"
*/ | 134 "\t.section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32\n"
*/ |
131 ".globl _%s\n" | 135 ".globl _%s\n" |
| 136 /* The 3 lines below are added for Chrome. */ |
| 137 "#ifdef U_HIDE_DATA_SYMBOL\n" |
| 138 "\t.private_extern _%s\n" |
| 139 "#endif\n" |
132 "\t.data\n" | 140 "\t.data\n" |
133 "\t.const\n" | 141 "\t.const\n" |
134 "\t.balign 16\n" | 142 "\t.balign 16\n" |
135 "_%s:\n\n", | 143 "_%s:\n\n", |
136 | 144 |
137 ".long ","",HEX_0X | 145 ".long ","",HEX_0X |
138 }, | 146 }, |
139 {"gcc-cygwin", | 147 {"gcc-cygwin", |
140 ".globl _%s\n" | 148 ".globl _%s\n" |
141 "\t.section .rodata\n" | 149 "\t.section .rodata\n" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 char *bufferStr = (char *)buffer; | 265 char *bufferStr = (char *)buffer; |
258 FileStream *in, *out; | 266 FileStream *in, *out; |
259 size_t i, length; | 267 size_t i, length; |
260 | 268 |
261 in=T_FileStream_open(filename, "rb"); | 269 in=T_FileStream_open(filename, "rb"); |
262 if(in==NULL) { | 270 if(in==NULL) { |
263 fprintf(stderr, "genccode: unable to open input file %s\n", filename); | 271 fprintf(stderr, "genccode: unable to open input file %s\n", filename); |
264 exit(U_FILE_ACCESS_ERROR); | 272 exit(U_FILE_ACCESS_ERROR); |
265 } | 273 } |
266 | 274 |
267 getOutFilename(filename, destdir, bufferStr, entry, ".s", optFilename); | 275 getOutFilename(filename, destdir, bufferStr, entry, ".S", optFilename); |
268 out=T_FileStream_open(bufferStr, "w"); | 276 out=T_FileStream_open(bufferStr, "w"); |
269 if(out==NULL) { | 277 if(out==NULL) { |
270 fprintf(stderr, "genccode: unable to open output file %s\n", bufferStr); | 278 fprintf(stderr, "genccode: unable to open output file %s\n", bufferStr); |
271 exit(U_FILE_ACCESS_ERROR); | 279 exit(U_FILE_ACCESS_ERROR); |
272 } | 280 } |
273 | 281 |
274 if (outFilePath != NULL) { | 282 if (outFilePath != NULL) { |
275 uprv_strcpy(outFilePath, bufferStr); | 283 uprv_strcpy(outFilePath, bufferStr); |
276 } | 284 } |
277 | 285 |
(...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1182 | 1190 |
1183 if(T_FileStream_error(out)) { | 1191 if(T_FileStream_error(out)) { |
1184 fprintf(stderr, "genccode: file write error while generating from file %
s\n", filename); | 1192 fprintf(stderr, "genccode: file write error while generating from file %
s\n", filename); |
1185 exit(U_FILE_ACCESS_ERROR); | 1193 exit(U_FILE_ACCESS_ERROR); |
1186 } | 1194 } |
1187 | 1195 |
1188 T_FileStream_close(out); | 1196 T_FileStream_close(out); |
1189 T_FileStream_close(in); | 1197 T_FileStream_close(in); |
1190 } | 1198 } |
1191 #endif | 1199 #endif |
OLD | NEW |