Comments only, no change to functionality
Unified · Split
| @@ -1783,7 +1783,7 @@ static uint32_t is_fconst() · 1782 unmodified lines | |||
| 1783 | } | 1783 | } |
| 1784 | 1784 | ||
| 1785 | /* generate a floating point operation 'v = t1 op t2' instruction. The | 1785 | /* generate a floating point operation 'v = t1 op t2' instruction. The |
| 1786 | two operands are guaranted to have the same floating point type */ | 1786 | two operands are guaranteed to have the same floating point type */ |
| 1787 | void gen_opf(int op) | 1787 | void gen_opf(int op) |
| 1788 | { | 1788 | { |
| 1789 | uint32_t x, r, r2, c1, c2; | 1789 | uint32_t x, r, r2, c1, c2; |
| @@ -232,7 +232,7 @@ typedef struct · 231 unmodified lines | |||
| 232 | 232 | ||
| 233 | #define EM_FX66 66 /* Siemens FX66 microcontroller */ | 233 | #define EM_FX66 66 /* Siemens FX66 microcontroller */ |
| 234 | #define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ | 234 | #define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ |
| 235 | #define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */ | 235 | #define EM_ST7 68 /* STMicroelectronics ST7 8 bit mc */ |
| 236 | #define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ | 236 | #define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ |
| 237 | #define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ | 237 | #define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ |
| 238 | #define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ | 238 | #define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ |
| @@ -817,7 +817,7 @@ typedef struct · 578 unmodified lines | |||
| 817 | #define DF_1_EDITED 0x00200000 /* Object is modified after built. */ | 817 | #define DF_1_EDITED 0x00200000 /* Object is modified after built. */ |
| 818 | #define DF_1_NORELOC 0x00400000 | 818 | #define DF_1_NORELOC 0x00400000 |
| 819 | #define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */ | 819 | #define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */ |
| 820 | #define DF_1_GLOBAUDIT 0x01000000 /* Global auditin required. */ | 820 | #define DF_1_GLOBAUDIT 0x01000000 /* Global auditing required. */ |
| 821 | #define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */ | 821 | #define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */ |
| 822 | 822 | ||
| 823 | /* Flags for the feature selection in DT_FEATURE_1. */ | 823 | /* Flags for the feature selection in DT_FEATURE_1. */ |
| @@ -1313,7 +1313,7 @@ typedef struct · 489 unmodified lines | |||
| 1313 | #define R_SPARC_LM22 36 /* Low middle 22 bits of ... */ | 1313 | #define R_SPARC_LM22 36 /* Low middle 22 bits of ... */ |
| 1314 | #define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */ | 1314 | #define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */ |
| 1315 | #define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */ | 1315 | #define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */ |
| 1316 | #define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */ | 1316 | #define R_SPARC_PC_LM22 39 /* Low middle 22 bits of ... */ |
| 1317 | #define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */ | 1317 | #define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */ |
| 1318 | #define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */ | 1318 | #define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */ |
| 1319 | #define R_SPARC_GLOB_JMP 42 /* was part of v9 ABI but was removed */ | 1319 | #define R_SPARC_GLOB_JMP 42 /* was part of v9 ABI but was removed */ |
| @@ -175,7 +175,7 @@ ST_FUNC void gen_addrpc32(int r, Sym *sym, int c) · 174 unmodified lines | |||
| 175 | gen_le32(c - 4); | 175 | gen_le32(c - 4); |
| 176 | } | 176 | } |
| 177 | 177 | ||
| 178 | /* generate a modrm reference. 'op_reg' contains the addtional 3 | 178 | /* generate a modrm reference. 'op_reg' contains the additional 3 |
| 179 | opcode bits */ | 179 | opcode bits */ |
| 180 | static void gen_modrm(int op_reg, int r, Sym *sym, int c) | 180 | static void gen_modrm(int op_reg, int r, Sym *sym, int c) |
| 181 | { | 181 | { |
| @@ -244,7 +244,7 @@ BOUND_PTR_INDIR(16) · 243 unmodified lines | |||
| 244 | 244 | ||
| 245 | #if defined(__GNUC__) && (__GNUC__ >= 6) | 245 | #if defined(__GNUC__) && (__GNUC__ >= 6) |
| 246 | /* | 246 | /* |
| 247 | * At least gcc 6.2 complains when __builtin_frame_address is used whith | 247 | * At least gcc 6.2 complains when __builtin_frame_address is used with |
| 248 | * nonzero argument. | 248 | * nonzero argument. |
| 249 | */ | 249 | */ |
| 250 | #pragma GCC diagnostic push | 250 | #pragma GCC diagnostic push |
| @@ -1453,7 +1453,7 @@ ST_FUNC int handle_eob(void); · 1452 unmodified lines | |||
| 1453 | 1453 | ||
| 1454 | /* ------------ xxx-link.c ------------ */ | 1454 | /* ------------ xxx-link.c ------------ */ |
| 1455 | 1455 | ||
| 1456 | /* Wether to generate a GOT/PLT entry and when. NO_GOTPLT_ENTRY is first so | 1456 | /* Whether to generate a GOT/PLT entry and when. NO_GOTPLT_ENTRY is first so |
| 1457 | that unknown relocation don't create a GOT or PLT entry */ | 1457 | that unknown relocation don't create a GOT or PLT entry */ |
| 1458 | enum gotplt_entry { | 1458 | enum gotplt_entry { |
| 1459 | NO_GOTPLT_ENTRY, /* never generate (eg. GLOB_DAT & JMP_SLOT relocs) */ | 1459 | NO_GOTPLT_ENTRY, /* never generate (eg. GLOB_DAT & JMP_SLOT relocs) */ |
| @@ -3637,7 +3637,7 @@ static void struct_layout(CType *type, AttributeDef *ad) · 3636 unmodified lines | |||
| 3637 | if (bit_pos + bit_size <= size * 8 && f->c + size <= c) | 3637 | if (bit_pos + bit_size <= size * 8 && f->c + size <= c) |
| 3638 | continue; | 3638 | continue; |
| 3639 | 3639 | ||
| 3640 | /* try to access the field using a differnt type */ | 3640 | /* try to access the field using a different type */ |
| 3641 | c0 = -1, s = align = 1; | 3641 | c0 = -1, s = align = 1; |
| 3642 | for (;;) { | 3642 | for (;;) { |
| 3643 | px = f->c * 8 + bit_pos; | 3643 | px = f->c * 8 + bit_pos; |
| @@ -2108,7 +2108,7 @@ static void parse_escape_string(CString *outstr, const uint8_t *buf, int is_long · 2107 unmodified lines | |||
| 2108 | /* reference: The Unicode Standard, Version 10.0, ch3.9 */ | 2108 | /* reference: The Unicode Standard, Version 10.0, ch3.9 */ |
| 2109 | 2109 | ||
| 2110 | int cont; /* count of continuation bytes */ | 2110 | int cont; /* count of continuation bytes */ |
| 2111 | int skip; /* how many bytes should skip when error occured */ | 2111 | int skip; /* how many bytes should skip when error occurred */ |
| 2112 | int i; | 2112 | int i; |
| 2113 | 2113 | ||
| 2114 | /* decode leading byte */ | 2114 | /* decode leading byte */ |
| @@ -3517,7 +3517,7 @@ no_subst: · 1402 unmodified lines | |||
| 3517 | if (t == TOK_NOSUBST) | 3517 | if (t == TOK_NOSUBST) |
| 3518 | nosubst = 1; | 3518 | nosubst = 1; |
| 3519 | } | 3519 | } |
| 3520 | /* GCC supports 'defined' as result of a macto substitution */ | 3520 | /* GCC supports 'defined' as result of a macro substitution */ |
| 3521 | if (t == TOK_DEFINED && pp_expr) | 3521 | if (t == TOK_DEFINED && pp_expr) |
| 3522 | nosubst = 2; | 3522 | nosubst = 2; |
| 3523 | } | 3523 | } |
| @@ -425,7 +425,7 @@ static int two_member_union_test(void) { · 424 unmodified lines | |||
| 425 | } | 425 | } |
| 426 | 426 | ||
| 427 | /* | 427 | /* |
| 428 | * Win64 calling convetntion test. | 428 | * Win64 calling convention test. |
| 429 | */ | 429 | */ |
| 430 | 430 | ||
| 431 | typedef struct many_struct_test_type_s {long long a, b, c;} many_struct_test_type; | 431 | typedef struct many_struct_test_type_s {long long a, b, c;} many_struct_test_type; |
| @@ -14,5 +14,5 @@ return n(0x1E)n(-1); · 13 unmodified lines | |||
| 14 | // unlike gcc but correct | 14 | // unlike gcc but correct |
| 15 | XXX: return n(x)+n(x)-n(1)+n(1)-2; | 15 | XXX: return n(x)+n(x)-n(1)+n(1)-2; |
| 16 | 16 | ||
| 17 | // unlile gcc, but cannot appear in valid C | 17 | // unlike gcc, but cannot appear in valid C |
| 18 | XXX: return n(x)n(x)n(1)n(2)n(x); | 18 | XXX: return n(x)n(x)n(1)n(2)n(x); |
| @@ -384,7 +384,7 @@ void macro_test(void) · 383 unmodified lines | |||
| 384 | MF_s("hi"); | 384 | MF_s("hi"); |
| 385 | MF_t("hi"); | 385 | MF_t("hi"); |
| 386 | 386 | ||
| 387 | /* test macro substituion inside args (should not eat stream) */ | 387 | /* test macro substitution inside args (should not eat stream) */ |
| 388 | printf("qq=%d\n", qq(qq)(2)); | 388 | printf("qq=%d\n", qq(qq)(2)); |
| 389 | 389 | ||
| 390 | /* test zero argument case. NOTE: gcc 2.95.x does not accept a | 390 | /* test zero argument case. NOTE: gcc 2.95.x does not accept a |
| @@ -404,7 +404,7 @@ comment · 13 unmodified lines | |||
| 404 | substituted */ | 404 | substituted */ |
| 405 | TEST2(); | 405 | TEST2(); |
| 406 | 406 | ||
| 407 | /* And again when the name and parenthes are separated by a | 407 | /* And again when the name and parentheses are separated by a |
| 408 | comment. */ | 408 | comment. */ |
| 409 | TEST2 /* the comment */ (); | 409 | TEST2 /* the comment */ (); |
| 410 | 410 | ||
| @@ -3117,7 +3117,7 @@ static __inline__ unsigned long long inc64(unsigned long long a) · 2706 unmodified lines | |||
| 3117 | unsigned long long res; | 3117 | unsigned long long res; |
| 3118 | #ifdef __x86_64__ | 3118 | #ifdef __x86_64__ |
| 3119 | /* Using the A constraint is wrong, and increments are tested | 3119 | /* Using the A constraint is wrong, and increments are tested |
| 3120 | elsewere. */ | 3120 | elsewhere. */ |
| 3121 | res = a + 1; | 3121 | res = a + 1; |
| 3122 | #else | 3122 | #else |
| 3123 | __asm__("addl $1, %%eax ; adcl $0, %%edx" : "=A" (res) : "A" (a)); | 3123 | __asm__("addl $1, %%eax ; adcl $0, %%edx" : "=A" (res) : "A" (a)); |
| @@ -9,7 +9,7 @@ static void kb_wait_1(void) · 8 unmodified lines | |||
| 9 | /* Here the else arm is a statement expression that's supposed | 9 | /* Here the else arm is a statement expression that's supposed |
| 10 | to be suppressed. The label inside the while would unsuppress | 10 | to be suppressed. The label inside the while would unsuppress |
| 11 | code generation again if not handled correctly. And that | 11 | code generation again if not handled correctly. And that |
| 12 | would wreak havok to the cond-expression because there's no | 12 | would wreak havoc to the cond-expression because there's no |
| 13 | jump-around emitted, the whole statement expression really | 13 | jump-around emitted, the whole statement expression really |
| 14 | needs to not generate code (perhaps except useless forward jumps). */ | 14 | needs to not generate code (perhaps except useless forward jumps). */ |
| 15 | (1 ? | 15 | (1 ? |
| @@ -60,7 +60,7 @@ struct U gu4 = { 3, {5,6,7,}, 5, { "bla", {44}} }; · 59 unmodified lines | |||
| 60 | struct S gs3 = { (1), {(2)}, {(((3))), {4}}}; | 60 | struct S gs3 = { (1), {(2)}, {(((3))), {4}}}; |
| 61 | /* Superfluous braces, and leaving out braces for V.t, plus cast */ | 61 | /* Superfluous braces, and leaving out braces for V.t, plus cast */ |
| 62 | struct V gv = {{{3},4,{5,6}}, "haha", (u8)45, 46}; | 62 | struct V gv = {{{3},4,{5,6}}, "haha", (u8)45, 46}; |
| 63 | /* Compund literal */ | 63 | /* Compound literal */ |
| 64 | struct V gv2 = {(struct S){7,8,{9,10}}, {"hihi", 47}, 48}; | 64 | struct V gv2 = {(struct S){7,8,{9,10}}, {"hihi", 47}, 48}; |
| 65 | /* Parens around compound literal */ | 65 | /* Parens around compound literal */ |
| 66 | struct V gv3 = {((struct S){7,8,{9,10}}), {"hoho", 49}, 50}; | 66 | struct V gv3 = {((struct S){7,8,{9,10}}), {"hoho", 49}, 50}; |
| @@ -157,7 +157,7 @@ void foo (struct W *w, struct pkthdr *phdr_) · 90 unmodified lines | |||
| 157 | struct S ls3 = { (1), (2), {(((3))), 4}}; | 157 | struct S ls3 = { (1), (2), {(((3))), 4}}; |
| 158 | /* Superfluous braces, and leaving out braces for V.t, plus cast */ | 158 | /* Superfluous braces, and leaving out braces for V.t, plus cast */ |
| 159 | struct V lv = {{3,4,{5,6}}, "haha", (u8)45, 46}; | 159 | struct V lv = {{3,4,{5,6}}, "haha", (u8)45, 46}; |
| 160 | /* Compund literal */ | 160 | /* Compound literal */ |
| 161 | struct V lv2 = {(struct S)w->t.s, {"hihi", 47}, 48}; | 161 | struct V lv2 = {(struct S)w->t.s, {"hihi", 47}, 48}; |
| 162 | /* Parens around compound literal */ | 162 | /* Parens around compound literal */ |
| 163 | struct V lv3 = {((struct S){7,8,{9,10}}), ((const struct W *)w)->t.t, 50}; | 163 | struct V lv3 = {((struct S){7,8,{9,10}}), ((const struct W *)w)->t.t, 50}; |
| @@ -89,10 +89,10 @@ struct trapframe { · 88 unmodified lines | |||
| 89 | ///////////////////////////////////////////////////////////////////////// | 89 | ///////////////////////////////////////////////////////////////////////// |
| 90 | ////////// SAFECALL FRAMEWORK | 90 | ////////// SAFECALL FRAMEWORK |
| 91 | ///////////////////////////////////////////////////////////////////////// | 91 | ///////////////////////////////////////////////////////////////////////// |
| 92 | // this framwork will convert any calling convention to cdecl | 92 | // this framework will convert any calling convention to cdecl |
| 93 | // usage: first set call target with 'SET_SAFECALL_TARGET(x)' | 93 | // usage: first set call target with 'SET_SAFECALL_TARGET(x)' |
| 94 | // then cast 'SAFECALL' to target funtion pointer type and invoke it | 94 | // then cast 'SAFECALL' to target function pointer type and invoke it |
| 95 | // after calling, 'ESPDIFF' is the differance of old and new esp | 95 | // after calling, 'ESPDIFF' is the difference of old and new esp |
| 96 | 96 | ||
| 97 | void *SYMBOL(sc_call_target); | 97 | void *SYMBOL(sc_call_target); |
| 98 | unsigned SYMBOL(sc_retn_addr); | 98 | unsigned SYMBOL(sc_retn_addr); |
| @@ -27,7 +27,7 @@ ifeq (-$(findstring gcc,$(CC))-,--) · 26 unmodified lines | |||
| 27 | SKIP += $(patsubst %.expect,%.test,$(GEN-ALWAYS)) | 27 | SKIP += $(patsubst %.expect,%.test,$(GEN-ALWAYS)) |
| 28 | endif | 28 | endif |
| 29 | ifeq (-$(CONFIG_WIN32)-$(CONFIG_i386)$(CONFIG_arm)-,--yes-) | 29 | ifeq (-$(CONFIG_WIN32)-$(CONFIG_i386)$(CONFIG_arm)-,--yes-) |
| 30 | SKIP += 95_bitfields%.test # type_align is differnt on 32bit-non-windows | 30 | SKIP += 95_bitfields%.test # type_align is different on 32bit-non-windows |
| 31 | endif | 31 | endif |
| 32 | 32 | ||
| 33 | # Some tests might need arguments | 33 | # Some tests might need arguments |
| @@ -194,7 +194,7 @@ extern "C" { · 193 unmodified lines | |||
| 194 | } | 194 | } |
| 195 | 195 | ||
| 196 | /* Register sizes are different between 32/64 bit mode. So we have to do this for _WIN64 and _WIN32 | 196 | /* Register sizes are different between 32/64 bit mode. So we have to do this for _WIN64 and _WIN32 |
| 197 | seperatly. */ | 197 | separately. */ |
| 198 | 198 | ||
| 199 | #ifdef _WIN64 | 199 | #ifdef _WIN64 |
| 200 | __CRT_INLINE void __writecr0(unsigned __int64 Data) | 200 | __CRT_INLINE void __writecr0(unsigned __int64 Data) |
| @@ -327,7 +327,7 @@ extern "C" { · 326 unmodified lines | |||
| 327 | #define isinf(x) (fpclassify(x) == FP_INFINITE) | 327 | #define isinf(x) (fpclassify(x) == FP_INFINITE) |
| 328 | 328 | ||
| 329 | /* 7.12.3.4 */ | 329 | /* 7.12.3.4 */ |
| 330 | /* We don't need to worry about trucation here: | 330 | /* We don't need to worry about truncation here: |
| 331 | A NaN stays a NaN. */ | 331 | A NaN stays a NaN. */ |
| 332 | #define isnan(x) (fpclassify(x) == FP_NAN) | 332 | #define isnan(x) (fpclassify(x) == FP_NAN) |
| 333 | 333 | ||
| @@ -178,7 +178,7 @@ typedef unsigned long long uintmax_t; · 177 unmodified lines | |||
| 178 | 178 | ||
| 179 | /* 7.18.4.1 Macros for minimum-width integer constants | 179 | /* 7.18.4.1 Macros for minimum-width integer constants |
| 180 | 180 | ||
| 181 | Accoding to Douglas Gwyn <gwyn@arl.mil>: | 181 | According to Douglas Gwyn <gwyn@arl.mil>: |
| 182 | "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC | 182 | "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC |
| 183 | 9899:1999 as initially published, the expansion was required | 183 | 9899:1999 as initially published, the expansion was required |
| 184 | to be an integer constant of precisely matching type, which | 184 | to be an integer constant of precisely matching type, which |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * TODO: Nothing here yet. Should provide UNIX compatibility constants | 2 | * TODO: Nothing here yet. Should provide UNIX compatibility constants |
| 3 | * comparible to those in limits.h and float.h. | 3 | * comparable to those in limits.h and float.h. |
| 4 | */ | 4 | */ |
| @@ -314,14 +314,14 @@ static void gen_modrm_impl(int op_reg, int r, Sym *sym, int c, int is_got) · 313 unmodified lines | |||
| 314 | } | 314 | } |
| 315 | } | 315 | } |
| 316 | 316 | ||
| 317 | /* generate a modrm reference. 'op_reg' contains the addtional 3 | 317 | /* generate a modrm reference. 'op_reg' contains the additional 3 |
| 318 | opcode bits */ | 318 | opcode bits */ |
| 319 | static void gen_modrm(int op_reg, int r, Sym *sym, int c) | 319 | static void gen_modrm(int op_reg, int r, Sym *sym, int c) |
| 320 | { | 320 | { |
| 321 | gen_modrm_impl(op_reg, r, sym, c, 0); | 321 | gen_modrm_impl(op_reg, r, sym, c, 0); |
| 322 | } | 322 | } |
| 323 | 323 | ||
| 324 | /* generate a modrm reference. 'op_reg' contains the addtional 3 | 324 | /* generate a modrm reference. 'op_reg' contains the additional 3 |
| 325 | opcode bits */ | 325 | opcode bits */ |
| 326 | static void gen_modrm64(int opcode, int op_reg, int r, Sym *sym, int c) | 326 | static void gen_modrm64(int opcode, int op_reg, int r, Sym *sym, int c) |
| 327 | { | 327 | { |