diff options
| author | Mike Pall <mike> | 2018-01-29 13:06:13 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2018-01-29 13:06:13 +0100 |
| commit | d4ee80342770d1281e2ce877f8ae8ab1d99e6528 (patch) | |
| tree | cd8db1f5da7f2bfbecc4092f2646665128dad227 /dynasm | |
| parent | b03a56f28ec360bbcf43091afd0607890a4a33c7 (diff) | |
| download | luajit-d4ee80342770d1281e2ce877f8ae8ab1d99e6528.tar.gz luajit-d4ee80342770d1281e2ce877f8ae8ab1d99e6528.tar.bz2 luajit-d4ee80342770d1281e2ce877f8ae8ab1d99e6528.zip | |
Fix GCC 7 -Wimplicit-fallthrough warnings.
Diffstat (limited to 'dynasm')
| -rw-r--r-- | dynasm/dasm_arm.h | 2 | ||||
| -rw-r--r-- | dynasm/dasm_mips.h | 1 | ||||
| -rw-r--r-- | dynasm/dasm_ppc.h | 1 | ||||
| -rw-r--r-- | dynasm/dasm_x86.h | 14 |
4 files changed, 16 insertions, 2 deletions
diff --git a/dynasm/dasm_arm.h b/dynasm/dasm_arm.h index a43f7c66..1d404ccd 100644 --- a/dynasm/dasm_arm.h +++ b/dynasm/dasm_arm.h | |||
| @@ -254,6 +254,7 @@ void dasm_put(Dst_DECL, int start, ...) | |||
| 254 | case DASM_IMMV8: | 254 | case DASM_IMMV8: |
| 255 | CK((n & 3) == 0, RANGE_I); | 255 | CK((n & 3) == 0, RANGE_I); |
| 256 | n >>= 2; | 256 | n >>= 2; |
| 257 | /* fallthrough */ | ||
| 257 | case DASM_IMML8: | 258 | case DASM_IMML8: |
| 258 | case DASM_IMML12: | 259 | case DASM_IMML12: |
| 259 | CK(n >= 0 ? ((n>>((ins>>5)&31)) == 0) : | 260 | CK(n >= 0 ? ((n>>((ins>>5)&31)) == 0) : |
| @@ -371,6 +372,7 @@ int dasm_encode(Dst_DECL, void *buffer) | |||
| 371 | break; | 372 | break; |
| 372 | case DASM_REL_LG: | 373 | case DASM_REL_LG: |
| 373 | CK(n >= 0, UNDEF_LG); | 374 | CK(n >= 0, UNDEF_LG); |
| 375 | /* fallthrough */ | ||
| 374 | case DASM_REL_PC: | 376 | case DASM_REL_PC: |
| 375 | CK(n >= 0, UNDEF_PC); | 377 | CK(n >= 0, UNDEF_PC); |
| 376 | n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base) - 4; | 378 | n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base) - 4; |
diff --git a/dynasm/dasm_mips.h b/dynasm/dasm_mips.h index 7eac6694..46af0349 100644 --- a/dynasm/dasm_mips.h +++ b/dynasm/dasm_mips.h | |||
| @@ -350,6 +350,7 @@ int dasm_encode(Dst_DECL, void *buffer) | |||
| 350 | break; | 350 | break; |
| 351 | case DASM_REL_LG: | 351 | case DASM_REL_LG: |
| 352 | CK(n >= 0, UNDEF_LG); | 352 | CK(n >= 0, UNDEF_LG); |
| 353 | /* fallthrough */ | ||
| 353 | case DASM_REL_PC: | 354 | case DASM_REL_PC: |
| 354 | CK(n >= 0, UNDEF_PC); | 355 | CK(n >= 0, UNDEF_PC); |
| 355 | n = *DASM_POS2PTR(D, n); | 356 | n = *DASM_POS2PTR(D, n); |
diff --git a/dynasm/dasm_ppc.h b/dynasm/dasm_ppc.h index 61103612..81b9a76b 100644 --- a/dynasm/dasm_ppc.h +++ b/dynasm/dasm_ppc.h | |||
| @@ -350,6 +350,7 @@ int dasm_encode(Dst_DECL, void *buffer) | |||
| 350 | break; | 350 | break; |
| 351 | case DASM_REL_LG: | 351 | case DASM_REL_LG: |
| 352 | CK(n >= 0, UNDEF_LG); | 352 | CK(n >= 0, UNDEF_LG); |
| 353 | /* fallthrough */ | ||
| 353 | case DASM_REL_PC: | 354 | case DASM_REL_PC: |
| 354 | CK(n >= 0, UNDEF_PC); | 355 | CK(n >= 0, UNDEF_PC); |
| 355 | n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base); | 356 | n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base); |
diff --git a/dynasm/dasm_x86.h b/dynasm/dasm_x86.h index f9260b0c..8ae911df 100644 --- a/dynasm/dasm_x86.h +++ b/dynasm/dasm_x86.h | |||
| @@ -194,12 +194,13 @@ void dasm_put(Dst_DECL, int start, ...) | |||
| 194 | switch (action) { | 194 | switch (action) { |
| 195 | case DASM_DISP: | 195 | case DASM_DISP: |
| 196 | if (n == 0) { if ((mrm&7) == 4) mrm = p[-2]; if ((mrm&7) != 5) break; } | 196 | if (n == 0) { if ((mrm&7) == 4) mrm = p[-2]; if ((mrm&7) != 5) break; } |
| 197 | case DASM_IMM_DB: if (((n+128)&-256) == 0) goto ob; | 197 | /* fallthrough */ |
| 198 | case DASM_IMM_DB: if (((n+128)&-256) == 0) goto ob; /* fallthrough */ | ||
| 198 | case DASM_REL_A: /* Assumes ptrdiff_t is int. !x64 */ | 199 | case DASM_REL_A: /* Assumes ptrdiff_t is int. !x64 */ |
| 199 | case DASM_IMM_D: ofs += 4; break; | 200 | case DASM_IMM_D: ofs += 4; break; |
| 200 | case DASM_IMM_S: CK(((n+128)&-256) == 0, RANGE_I); goto ob; | 201 | case DASM_IMM_S: CK(((n+128)&-256) == 0, RANGE_I); goto ob; |
| 201 | case DASM_IMM_B: CK((n&-256) == 0, RANGE_I); ob: ofs++; break; | 202 | case DASM_IMM_B: CK((n&-256) == 0, RANGE_I); ob: ofs++; break; |
| 202 | case DASM_IMM_WB: if (((n+128)&-256) == 0) goto ob; | 203 | case DASM_IMM_WB: if (((n+128)&-256) == 0) goto ob; /* fallthrough */ |
| 203 | case DASM_IMM_W: CK((n&-65536) == 0, RANGE_I); ofs += 2; break; | 204 | case DASM_IMM_W: CK((n&-65536) == 0, RANGE_I); ofs += 2; break; |
| 204 | case DASM_SPACE: p++; ofs += n; break; | 205 | case DASM_SPACE: p++; ofs += n; break; |
| 205 | case DASM_SETLABEL: b[pos-2] = -0x40000000; break; /* Neg. label ofs. */ | 206 | case DASM_SETLABEL: b[pos-2] = -0x40000000; break; /* Neg. label ofs. */ |
| @@ -323,11 +324,14 @@ int dasm_link(Dst_DECL, size_t *szp) | |||
| 323 | pos += 2; | 324 | pos += 2; |
| 324 | break; | 325 | break; |
| 325 | } | 326 | } |
| 327 | /* fallthrough */ | ||
| 326 | case DASM_SPACE: case DASM_IMM_LG: case DASM_VREG: p++; | 328 | case DASM_SPACE: case DASM_IMM_LG: case DASM_VREG: p++; |
| 329 | /* fallthrough */ | ||
| 327 | case DASM_DISP: case DASM_IMM_S: case DASM_IMM_B: case DASM_IMM_W: | 330 | case DASM_DISP: case DASM_IMM_S: case DASM_IMM_B: case DASM_IMM_W: |
| 328 | case DASM_IMM_D: case DASM_IMM_WB: case DASM_IMM_DB: | 331 | case DASM_IMM_D: case DASM_IMM_WB: case DASM_IMM_DB: |
| 329 | case DASM_SETLABEL: case DASM_REL_A: case DASM_IMM_PC: pos++; break; | 332 | case DASM_SETLABEL: case DASM_REL_A: case DASM_IMM_PC: pos++; break; |
| 330 | case DASM_LABEL_LG: p++; | 333 | case DASM_LABEL_LG: p++; |
| 334 | /* fallthrough */ | ||
| 331 | case DASM_LABEL_PC: b[pos++] += ofs; break; /* Fix label offset. */ | 335 | case DASM_LABEL_PC: b[pos++] += ofs; break; /* Fix label offset. */ |
| 332 | case DASM_ALIGN: ofs -= (b[pos++]+ofs)&*p++; break; /* Adjust ofs. */ | 336 | case DASM_ALIGN: ofs -= (b[pos++]+ofs)&*p++; break; /* Adjust ofs. */ |
| 333 | case DASM_EXTERN: p += 2; break; | 337 | case DASM_EXTERN: p += 2; break; |
| @@ -385,16 +389,20 @@ int dasm_encode(Dst_DECL, void *buffer) | |||
| 385 | if (mrm != 5) { mm[-1] -= 0x80; break; } } | 389 | if (mrm != 5) { mm[-1] -= 0x80; break; } } |
| 386 | if (((n+128) & -256) != 0) goto wd; else mm[-1] -= 0x40; | 390 | if (((n+128) & -256) != 0) goto wd; else mm[-1] -= 0x40; |
| 387 | } | 391 | } |
| 392 | /* fallthrough */ | ||
| 388 | case DASM_IMM_S: case DASM_IMM_B: wb: dasmb(n); break; | 393 | case DASM_IMM_S: case DASM_IMM_B: wb: dasmb(n); break; |
| 389 | case DASM_IMM_DB: if (((n+128)&-256) == 0) { | 394 | case DASM_IMM_DB: if (((n+128)&-256) == 0) { |
| 390 | db: if (!mark) mark = cp; mark[-2] += 2; mark = NULL; goto wb; | 395 | db: if (!mark) mark = cp; mark[-2] += 2; mark = NULL; goto wb; |
| 391 | } else mark = NULL; | 396 | } else mark = NULL; |
| 397 | /* fallthrough */ | ||
| 392 | case DASM_IMM_D: wd: dasmd(n); break; | 398 | case DASM_IMM_D: wd: dasmd(n); break; |
| 393 | case DASM_IMM_WB: if (((n+128)&-256) == 0) goto db; else mark = NULL; | 399 | case DASM_IMM_WB: if (((n+128)&-256) == 0) goto db; else mark = NULL; |
| 400 | /* fallthrough */ | ||
| 394 | case DASM_IMM_W: dasmw(n); break; | 401 | case DASM_IMM_W: dasmw(n); break; |
| 395 | case DASM_VREG: { int t = *p++; if (t >= 2) n<<=3; cp[-1] |= n; break; } | 402 | case DASM_VREG: { int t = *p++; if (t >= 2) n<<=3; cp[-1] |= n; break; } |
| 396 | case DASM_REL_LG: p++; if (n >= 0) goto rel_pc; | 403 | case DASM_REL_LG: p++; if (n >= 0) goto rel_pc; |
| 397 | b++; n = (int)(ptrdiff_t)D->globals[-n]; | 404 | b++; n = (int)(ptrdiff_t)D->globals[-n]; |
| 405 | /* fallthrough */ | ||
| 398 | case DASM_REL_A: rel_a: | 406 | case DASM_REL_A: rel_a: |
| 399 | n -= (unsigned int)(ptrdiff_t)(cp+4); goto wd; /* !x64 */ | 407 | n -= (unsigned int)(ptrdiff_t)(cp+4); goto wd; /* !x64 */ |
| 400 | case DASM_REL_PC: rel_pc: { | 408 | case DASM_REL_PC: rel_pc: { |
| @@ -407,6 +415,7 @@ int dasm_encode(Dst_DECL, void *buffer) | |||
| 407 | } | 415 | } |
| 408 | case DASM_IMM_LG: | 416 | case DASM_IMM_LG: |
| 409 | p++; if (n < 0) { n = (int)(ptrdiff_t)D->globals[-n]; goto wd; } | 417 | p++; if (n < 0) { n = (int)(ptrdiff_t)D->globals[-n]; goto wd; } |
| 418 | /* fallthrough */ | ||
| 410 | case DASM_IMM_PC: { | 419 | case DASM_IMM_PC: { |
| 411 | int *pb = DASM_POS2PTR(D, n); | 420 | int *pb = DASM_POS2PTR(D, n); |
| 412 | n = *pb < 0 ? pb[1] : (*pb + (int)(ptrdiff_t)base); | 421 | n = *pb < 0 ? pb[1] : (*pb + (int)(ptrdiff_t)base); |
| @@ -427,6 +436,7 @@ int dasm_encode(Dst_DECL, void *buffer) | |||
| 427 | case DASM_EXTERN: n = DASM_EXTERN(Dst, cp, p[1], *p); p += 2; goto wd; | 436 | case DASM_EXTERN: n = DASM_EXTERN(Dst, cp, p[1], *p); p += 2; goto wd; |
| 428 | case DASM_MARK: mark = cp; break; | 437 | case DASM_MARK: mark = cp; break; |
| 429 | case DASM_ESC: action = *p++; | 438 | case DASM_ESC: action = *p++; |
| 439 | /* fallthrough */ | ||
| 430 | default: *cp++ = action; break; | 440 | default: *cp++ = action; break; |
| 431 | case DASM_SECTION: case DASM_STOP: goto stop; | 441 | case DASM_SECTION: case DASM_STOP: goto stop; |
| 432 | } | 442 | } |
