From patchwork Sun Jan 20 15:54:46 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Blue Swirl X-Patchwork-Id: 213955 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id D08DF2C0079 for ; Mon, 21 Jan 2013 02:55:33 +1100 (EST) Received: from localhost ([::1]:38723 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TwxF4-0003Nk-Sh for incoming@patchwork.ozlabs.org; Sun, 20 Jan 2013 10:55:30 -0500 Received: from eggs.gnu.org ([208.118.235.92]:42257) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TwxEo-0003LO-KI for qemu-devel@nongnu.org; Sun, 20 Jan 2013 10:55:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TwxEj-00069E-PV for qemu-devel@nongnu.org; Sun, 20 Jan 2013 10:55:14 -0500 Received: from mail-la0-f50.google.com ([209.85.215.50]:32922) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TwxEj-000682-2y; Sun, 20 Jan 2013 10:55:09 -0500 Received: by mail-la0-f50.google.com with SMTP id ec20so1127764lab.37 for ; Sun, 20 Jan 2013 07:55:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=RV7vxpEl3lxD2aWjU+AaWTyyb4klagRkbichsuYrqp8=; b=ihm08jrjmpG8fjYz3q4dK7AG+QnA0r9iwSX4XpqLoBmi5MT26RROzBsTJbIM44iDTX 9azd/1c7+2lbFMNbnFk2gwblpA10kjuAZE3TAwKMHgkePkNyRLKwI++FtC1Ccc7Tlj7O tvUfjqU6nBXdtlYOB2ZMOPe+SHd+HcV2Tk7khEIXCGB5hSVvSFO1HKJiCSJOIM6mMTvb mIy74kBmL1A+sM4Ey1TrGqmrFwkQH6snjy0JhLJ7gHpTLICmO9+f1ROX3ni2E7H+WMb1 h0gjeFPrs4EmyK36jKN7uFekBdhh9+dBaJjDbfREpQDKTxbb4LwDXY5ct2Pnz6zkxhR9 viCQ== X-Received: by 10.152.144.164 with SMTP id sn4mr14561189lab.57.1358697307123; Sun, 20 Jan 2013 07:55:07 -0800 (PST) Received: from localhost.localdomain ([2001:5c0:1500:5a00:4939:39a5:ca6a:9a34]) by mx.google.com with ESMTPS id hn3sm4211456lab.10.2013.01.20.07.54.59 (version=TLSv1 cipher=RC4-SHA bits=128/128); Sun, 20 Jan 2013 07:55:05 -0800 (PST) From: Blue Swirl To: qemu-devel@nongnu.org Date: Sun, 20 Jan 2013 15:54:46 +0000 Message-Id: <19952e84d566d9309b15fe205db6b166f4234c33.1358697255.git.blauwirbel@gmail.com> X-Mailer: git-send-email 1.7.2.5 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.215.50 Cc: Kevin Wolf , Peter Crosthwaite , Anthony Liguori , Mark Langsdorf , Peter Maydell , qemu-ppc@nongnu.org, Riku Voipio , Alexander Graf , blauwirbel@gmail.com, Max Filippov , "Vassili Karpov \(malc\)" , Paul Brook , Paolo Bonzini , Guan Xuetao , Aurelien Jarno , Richard Henderson Subject: [Qemu-devel] [PATCH] Annotate questionable fallthroughs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Recent Clang compilers have preliminary support for finding unannotated fallthrough cases in switch statements with compiler flag -Wimplicit-fallthrough. The support is incomplete, it's only possible to annotate the case in C++ but not in C, so it wouldn't be useful to enable the flag for QEMU yet. Mark cases which don't have a comment about fall through with a comment. In legitimate fall through cases the comment can be edited later to mark the case for future readers. Signed-off-by: Blue Swirl --- audio/audio.c | 3 ++ disas/cris.c | 1 + disas/m68k.c | 1 + disas/sh4.c | 2 + hw/arm_sysctl.c | 2 + hw/cadence_ttc.c | 2 + hw/cirrus_vga.c | 1 + hw/es1370.c | 20 +++++++++++++++ hw/hid.c | 2 + hw/highbank.c | 2 + hw/ide/core.c | 8 ++++++ hw/jazz_led.c | 1 + hw/omap1.c | 3 ++ hw/omap_dma.c | 12 +++++++++ hw/omap_spi.c | 24 ++++++++++++++++++ hw/pflash_cfi02.c | 1 + hw/ppc.c | 1 + hw/pxa2xx.c | 2 + hw/pxa2xx_timer.c | 47 ++++++++++++++++++++++++++++++++++++ hw/scsi-bus.c | 2 + hw/sh_timer.c | 5 ++++ hw/smc91c111.c | 1 + hw/stellaris.c | 2 + hw/tcx.c | 1 + hw/twl92230.c | 17 +++++++++++++ hw/usb/hcd-ohci.c | 2 + linux-user/main.c | 4 +++ linux-user/syscall.c | 1 + target-i386/translate.c | 3 ++ target-mips/translate.c | 54 ++++++++++++++++++++++++++++++++++++++++++ target-ppc/mmu_helper.c | 1 + target-s390x/translate.c | 1 + target-sparc/ldst_helper.c | 4 +++ target-unicore32/translate.c | 2 + target-xtensa/op_helper.c | 2 + tcg/optimize.c | 3 ++ ui/sdl.c | 1 + 37 files changed, 241 insertions(+), 0 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 02bb886..b42489b 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -617,11 +617,13 @@ void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as) switch (as->fmt) { case AUD_FMT_S8: sign = 1; + /* XXX: questionable fallthrough */ case AUD_FMT_U8: break; case AUD_FMT_S16: sign = 1; + /* XXX: questionable fallthrough */ case AUD_FMT_U16: bits = 16; shift = 1; @@ -629,6 +631,7 @@ void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as) case AUD_FMT_S32: sign = 1; + /* XXX: questionable fallthrough */ case AUD_FMT_U32: bits = 32; shift = 2; diff --git a/disas/cris.c b/disas/cris.c index 9dfb4e3..c2c08fa 100644 --- a/disas/cris.c +++ b/disas/cris.c @@ -1348,6 +1348,7 @@ spec_reg_info (unsigned int sreg, enum cris_disass_family distype) /* No ambiguous sizes or register names with CRISv32. */ if (cris_spec_regs[i].warning == NULL) return &cris_spec_regs[i]; + /* XXX: questionable fallthrough */ default: ; } diff --git a/disas/m68k.c b/disas/m68k.c index c950241..7e82046 100644 --- a/disas/m68k.c +++ b/disas/m68k.c @@ -1626,6 +1626,7 @@ print_insn_arg (const char *d, case 'X': place = '8'; + /* XXX: questionable fallthrough */ case 'Y': case 'Z': case 'W': diff --git a/disas/sh4.c b/disas/sh4.c index f6cadd5..0e94424 100644 --- a/disas/sh4.c +++ b/disas/sh4.c @@ -1969,6 +1969,7 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info) fprintf_fn (stream, "xd%d", rn & ~1); break; } + /* XXX: questionable fallthrough */ case D_REG_N: fprintf_fn (stream, "dr%d", rn); break; @@ -1978,6 +1979,7 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info) fprintf_fn (stream, "xd%d", rm & ~1); break; } + /* XXX: questionable fallthrough */ case D_REG_M: fprintf_fn (stream, "dr%d", rm); break; diff --git a/hw/arm_sysctl.c b/hw/arm_sysctl.c index a196fcc..2066ef3 100644 --- a/hw/arm_sysctl.c +++ b/hw/arm_sysctl.c @@ -199,6 +199,7 @@ static void arm_sysctl_write(void *opaque, hwaddr offset, switch (offset) { case 0x08: /* LED */ s->leds = val; + /* XXX: questionable fallthrough */ case 0x0c: /* OSC0 */ case 0x10: /* OSC1 */ case 0x14: /* OSC2 */ @@ -295,6 +296,7 @@ static void arm_sysctl_write(void *opaque, hwaddr offset, /* On VExpress this register is unimplemented and will RAZ/WI */ break; } + /* XXX: questionable fallthrough */ case 0x54: /* CLCDSER */ case 0x64: /* DMAPSR0 */ case 0x68: /* DMAPSR1 */ diff --git a/hw/cadence_ttc.c b/hw/cadence_ttc.c index 2a8fadd..8613b85 100644 --- a/hw/cadence_ttc.c +++ b/hw/cadence_ttc.c @@ -342,11 +342,13 @@ static void cadence_ttc_write(void *opaque, hwaddr offset, case 0x38: s->reg_match[0] = value & 0xffff; + /* XXX: questionable fallthrough */ case 0x3c: /* match register */ case 0x40: case 0x44: s->reg_match[1] = value & 0xffff; + /* XXX: questionable fallthrough */ case 0x48: /* match register */ case 0x4c: case 0x50: diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index 2a2c8da..edd68f0 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -1305,6 +1305,7 @@ static void cirrus_vga_write_sr(CirrusVGAState * s, uint32_t val) break; case 0x07: // Extended Sequencer Mode cirrus_update_memory_access(s); + /* XXX: questionable fallthrough */ case 0x08: // EEPROM Control case 0x09: // Scratch Register 0 case 0x0a: // Scratch Register 1 diff --git a/hw/es1370.c b/hw/es1370.c index 977d2e3..e5793b1 100644 --- a/hw/es1370.c +++ b/hw/es1370.c @@ -537,8 +537,10 @@ IO_WRITE_PROTO (es1370_writew) case ES1370_REG_ADC_SCOUNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_SCOUNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_SCOUNT: d->scount = (d->scount & ~0xffff) | (val & 0xffff); break; @@ -574,8 +576,10 @@ IO_WRITE_PROTO (es1370_writel) case ES1370_REG_ADC_SCOUNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_SCOUNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_SCOUNT: d->scount = (val & 0xffff) | (d->scount & ~0xffff); ldebug ("chan %td CURR_SAMP_CT %d, SAMP_CT %d\n", @@ -584,8 +588,10 @@ IO_WRITE_PROTO (es1370_writel) case ES1370_REG_ADC_FRAMEADR: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_FRAMEADR: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_FRAMEADR: d->frame_addr = val; ldebug ("chan %td frame address %#x\n", d - &s->chan[0], val); @@ -600,8 +606,10 @@ IO_WRITE_PROTO (es1370_writel) case ES1370_REG_ADC_FRAMECNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_FRAMECNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_FRAMECNT: d->frame_cnt = val; d->leftover = 0; @@ -661,24 +669,30 @@ IO_READ_PROTO (es1370_readw) switch (addr) { case ES1370_REG_ADC_SCOUNT + 2: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_SCOUNT + 2: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_SCOUNT + 2: val = d->scount >> 16; break; case ES1370_REG_ADC_FRAMECNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_FRAMECNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_FRAMECNT: val = d->frame_cnt & 0xffff; break; case ES1370_REG_ADC_FRAMECNT + 2: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_FRAMECNT + 2: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_FRAMECNT + 2: val = d->frame_cnt >> 16; break; @@ -719,8 +733,10 @@ IO_READ_PROTO (es1370_readl) case ES1370_REG_ADC_SCOUNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_SCOUNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_SCOUNT: val = d->scount; #ifdef DEBUG_ES1370 @@ -737,8 +753,10 @@ IO_READ_PROTO (es1370_readl) case ES1370_REG_ADC_FRAMECNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_FRAMECNT: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_FRAMECNT: val = d->frame_cnt; #ifdef DEBUG_ES1370 @@ -755,8 +773,10 @@ IO_READ_PROTO (es1370_readl) case ES1370_REG_ADC_FRAMEADR: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC2_FRAMEADR: d++; + /* XXX: questionable fallthrough */ case ES1370_REG_DAC1_FRAMEADR: val = d->frame_addr; break; diff --git a/hw/hid.c b/hw/hid.c index 89b5415..f7a815c 100644 --- a/hw/hid.c +++ b/hw/hid.c @@ -196,11 +196,13 @@ static void hid_keyboard_process_keycode(HIDState *hs) hs->kbd.modifiers ^= 3 << 8; return; } + /* XXX: questionable fallthrough */ case 0xe1 ... 0xe7: if (keycode & (1 << 7)) { hs->kbd.modifiers &= ~(1 << (hid_code & 0x0f)); return; } + /* XXX: questionable fallthrough */ case 0xe8 ... 0xef: hs->kbd.modifiers |= 1 << (hid_code & 0x0f); return; diff --git a/hw/highbank.c b/hw/highbank.c index 7bc6b44..28771b1 100644 --- a/hw/highbank.c +++ b/hw/highbank.c @@ -70,8 +70,10 @@ static void hb_reset_secondary(ARMCPU *cpu, const struct arm_boot_info *info) switch (info->nb_cpus) { case 4: stl_phys_notdirty(SMP_BOOT_REG + 0x30, 0); + /* XXX: questionable fallthrough */ case 3: stl_phys_notdirty(SMP_BOOT_REG + 0x20, 0); + /* XXX: questionable fallthrough */ case 2: stl_phys_notdirty(SMP_BOOT_REG + 0x10, 0); env->regs[15] = SMP_BOOT_ADDR; diff --git a/hw/ide/core.c b/hw/ide/core.c index 14ad079..0457c65 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -1151,6 +1151,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_VERIFY_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_VERIFY: case WIN_VERIFY_ONCE: /* do sector number check ? */ @@ -1160,6 +1161,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_READ_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_READ: case WIN_READ_ONCE: if (s->drive_kind == IDE_CD) { @@ -1175,6 +1177,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_WRITE_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_WRITE: case WIN_WRITE_ONCE: case CFA_WRITE_SECT_WO_ERASE: @@ -1191,6 +1194,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_MULTREAD_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_MULTREAD: if (!s->bs) { goto abort_cmd; @@ -1204,6 +1208,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_MULTWRITE_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_MULTWRITE: case CFA_WRITE_MULTI_WO_ERASE: if (!s->bs) { @@ -1224,6 +1229,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_READDMA_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_READDMA: case WIN_READDMA_ONCE: if (!s->bs) { @@ -1234,6 +1240,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_WRITEDMA_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_WRITEDMA: case WIN_WRITEDMA_ONCE: if (!s->bs) { @@ -1245,6 +1252,7 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val) break; case WIN_READ_NATIVE_MAX_EXT: lba48 = 1; + /* XXX: questionable fallthrough */ case WIN_READ_NATIVE_MAX: ide_cmd_lba48_transform(s, lba48); ide_set_sector(s, s->nb_sectors - 1); diff --git a/hw/jazz_led.c b/hw/jazz_led.c index 4822c48..8b6a16b 100644 --- a/hw/jazz_led.c +++ b/hw/jazz_led.c @@ -165,6 +165,7 @@ static void jazz_led_update_display(void *opaque) case 16: color_segment = rgb_to_pixel16(0xaa, 0xaa, 0xaa); color_led = rgb_to_pixel16(0x00, 0xff, 0x00); + /* XXX: questionable fallthrough */ case 24: color_segment = rgb_to_pixel24(0xaa, 0xaa, 0xaa); color_led = rgb_to_pixel24(0x00, 0xff, 0x00); diff --git a/hw/omap1.c b/hw/omap1.c index e85f2e2..3e3e5e7 100644 --- a/hw/omap1.c +++ b/hw/omap1.c @@ -529,6 +529,7 @@ static uint64_t omap_ulpd_pm_read(void *opaque, hwaddr addr, case 0x28: /* Reserved */ case 0x2c: /* Reserved */ OMAP_BAD_REG(addr); + /* XXX: questionable fallthrough */ case 0x00: /* COUNTER_32_LSB */ case 0x04: /* COUNTER_32_MSB */ case 0x08: /* COUNTER_HIGH_FREQ_LSB */ @@ -633,6 +634,7 @@ static void omap_ulpd_pm_write(void *opaque, hwaddr addr, case 0x28: /* Reserved */ case 0x2c: /* Reserved */ OMAP_BAD_REG(addr); + /* XXX: questionable fallthrough */ case 0x24: /* SETUP_ANALOG_CELL3_ULPD1 */ case 0x38: /* COUNTER_32_FIQ */ case 0x48: /* LOCL_TIME */ @@ -1089,6 +1091,7 @@ static void omap_mpui_write(void *opaque, hwaddr addr, /* Not in OMAP310 */ case 0x14: /* DSP_STATUS */ OMAP_RO_REG(addr); + /* XXX: questionable fallthrough */ case 0x18: /* DSP_BOOT_CONFIG */ case 0x1c: /* DSP_MPUI_CONFIG */ break; diff --git a/hw/omap_dma.c b/hw/omap_dma.c index aec5874..dbc26e3 100644 --- a/hw/omap_dma.c +++ b/hw/omap_dma.c @@ -1709,19 +1709,25 @@ static uint64_t omap_dma4_read(void *opaque, hwaddr addr, case 0x14: /* DMA4_IRQSTATUS_L3 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x10: /* DMA4_IRQSTATUS_L2 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x0c: /* DMA4_IRQSTATUS_L1 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x08: /* DMA4_IRQSTATUS_L0 */ return s->irqstat[irqn]; case 0x24: /* DMA4_IRQENABLE_L3 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x20: /* DMA4_IRQENABLE_L2 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x1c: /* DMA4_IRQENABLE_L1 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x18: /* DMA4_IRQENABLE_L0 */ return s->irqen[irqn]; @@ -1856,10 +1862,13 @@ static void omap_dma4_write(void *opaque, hwaddr addr, switch (addr) { case 0x14: /* DMA4_IRQSTATUS_L3 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x10: /* DMA4_IRQSTATUS_L2 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x0c: /* DMA4_IRQSTATUS_L1 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x08: /* DMA4_IRQSTATUS_L0 */ s->irqstat[irqn] &= ~value; if (!s->irqstat[irqn]) @@ -1868,10 +1877,13 @@ static void omap_dma4_write(void *opaque, hwaddr addr, case 0x24: /* DMA4_IRQENABLE_L3 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x20: /* DMA4_IRQENABLE_L2 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x1c: /* DMA4_IRQENABLE_L1 */ irqn ++; + /* XXX: questionable fallthrough */ case 0x18: /* DMA4_IRQENABLE_L0 */ s->irqen[irqn] = value; return; diff --git a/hw/omap_spi.c b/hw/omap_spi.c index 42d5149..6869148 100644 --- a/hw/omap_spi.c +++ b/hw/omap_spi.c @@ -167,32 +167,47 @@ static uint64_t omap_mcspi_read(void *opaque, hwaddr addr, return s->control; case 0x68: ch ++; + /* XXX: questionable fallthrough */ case 0x54: ch ++; + /* XXX: questionable fallthrough */ case 0x40: ch ++; + /* XXX: questionable fallthrough */ case 0x2c: /* MCSPI_CHCONF */ return s->ch[ch].config; case 0x6c: ch ++; + /* XXX: questionable fallthrough */ case 0x58: ch ++; + /* XXX: questionable fallthrough */ case 0x44: ch ++; + /* XXX: questionable fallthrough */ case 0x30: /* MCSPI_CHSTAT */ return s->ch[ch].status; case 0x70: ch ++; + /* XXX: questionable fallthrough */ case 0x5c: ch ++; + /* XXX: questionable fallthrough */ case 0x48: ch ++; + /* XXX: questionable fallthrough */ case 0x34: /* MCSPI_CHCTRL */ return s->ch[ch].control; case 0x74: ch ++; + /* XXX: questionable fallthrough */ case 0x60: ch ++; + /* XXX: questionable fallthrough */ case 0x4c: ch ++; + /* XXX: questionable fallthrough */ case 0x38: /* MCSPI_TX */ return s->ch[ch].tx; case 0x78: ch ++; + /* XXX: questionable fallthrough */ case 0x64: ch ++; + /* XXX: questionable fallthrough */ case 0x50: ch ++; + /* XXX: questionable fallthrough */ case 0x3c: /* MCSPI_RX */ s->ch[ch].status &= ~(1 << 0); /* RXS */ ret = s->ch[ch].rx; @@ -269,8 +284,11 @@ static void omap_mcspi_write(void *opaque, hwaddr addr, break; case 0x68: ch ++; + /* XXX: questionable fallthrough */ case 0x54: ch ++; + /* XXX: questionable fallthrough */ case 0x40: ch ++; + /* XXX: questionable fallthrough */ case 0x2c: /* MCSPI_CHCONF */ if ((value ^ s->ch[ch].config) & (3 << 14)) /* DMAR | DMAW */ omap_mcspi_dmarequest_update(s->ch + ch); @@ -283,8 +301,11 @@ static void omap_mcspi_write(void *opaque, hwaddr addr, break; case 0x70: ch ++; + /* XXX: questionable fallthrough */ case 0x5c: ch ++; + /* XXX: questionable fallthrough */ case 0x48: ch ++; + /* XXX: questionable fallthrough */ case 0x34: /* MCSPI_CHCTRL */ if (value & ~s->ch[ch].control & 1) { /* EN */ s->ch[ch].control |= 1; @@ -294,8 +315,11 @@ static void omap_mcspi_write(void *opaque, hwaddr addr, break; case 0x74: ch ++; + /* XXX: questionable fallthrough */ case 0x60: ch ++; + /* XXX: questionable fallthrough */ case 0x4c: ch ++; + /* XXX: questionable fallthrough */ case 0x38: /* MCSPI_TX */ s->ch[ch].tx = value; s->ch[ch].status &= ~(1 << 1); /* TXS */ diff --git a/hw/pflash_cfi02.c b/hw/pflash_cfi02.c index cfb91cb..3c205f0 100644 --- a/hw/pflash_cfi02.c +++ b/hw/pflash_cfi02.c @@ -157,6 +157,7 @@ static uint32_t pflash_read (pflash_t *pfl, hwaddr offset, DPRINTF("%s: unknown command state: %x\n", __func__, pfl->cmd); pfl->wcycle = 0; pfl->cmd = 0; + /* XXX: questionable fallthrough */ case 0x80: /* We accept reads during second unlock sequence... */ case 0x00: diff --git a/hw/ppc.c b/hw/ppc.c index c52e22f..d22e4d4 100644 --- a/hw/ppc.c +++ b/hw/ppc.c @@ -97,6 +97,7 @@ static void ppc6xx_set_irq(void *opaque, int pin, int level) } else { cpu_ppc_tb_stop(env); } + /* XXX: questionable fallthrough */ case PPC6xx_INPUT_INT: /* Level sensitive - active high */ LOG_IRQ("%s: set the external IRQ state to %d\n", diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c index 492805f..25554a5 100644 --- a/hw/pxa2xx.c +++ b/hw/pxa2xx.c @@ -415,6 +415,7 @@ static uint64_t pxa2xx_mm_read(void *opaque, hwaddr addr, if ((addr & 3) == 0) return s->mm_regs[addr >> 2]; + /* XXX: questionable fallthrough */ default: printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); break; @@ -434,6 +435,7 @@ static void pxa2xx_mm_write(void *opaque, hwaddr addr, break; } + /* XXX: questionable fallthrough */ default: printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); break; diff --git a/hw/pxa2xx_timer.c b/hw/pxa2xx_timer.c index 32c1872..f73bb3f 100644 --- a/hw/pxa2xx_timer.c +++ b/hw/pxa2xx_timer.c @@ -157,17 +157,27 @@ static uint64_t pxa2xx_timer_read(void *opaque, hwaddr offset, switch (offset) { case OSMR3: tm ++; + /* XXX: questionable fallthrough */ case OSMR2: tm ++; + /* XXX: questionable fallthrough */ case OSMR1: tm ++; + /* XXX: questionable fallthrough */ case OSMR0: return s->timer[tm].value; case OSMR11: tm ++; + /* XXX: questionable fallthrough */ case OSMR10: tm ++; + /* XXX: questionable fallthrough */ case OSMR9: tm ++; + /* XXX: questionable fallthrough */ case OSMR8: tm ++; + /* XXX: questionable fallthrough */ case OSMR7: tm ++; + /* XXX: questionable fallthrough */ case OSMR6: tm ++; + /* XXX: questionable fallthrough */ case OSMR5: tm ++; + /* XXX: questionable fallthrough */ case OSMR4: if (!pxa2xx_timer_has_tm4(s)) goto badreg; @@ -176,12 +186,19 @@ static uint64_t pxa2xx_timer_read(void *opaque, hwaddr offset, return s->clock + muldiv64(qemu_get_clock_ns(vm_clock) - s->lastload, s->freq, get_ticks_per_sec()); case OSCR11: tm ++; + /* XXX: questionable fallthrough */ case OSCR10: tm ++; + /* XXX: questionable fallthrough */ case OSCR9: tm ++; + /* XXX: questionable fallthrough */ case OSCR8: tm ++; + /* XXX: questionable fallthrough */ case OSCR7: tm ++; + /* XXX: questionable fallthrough */ case OSCR6: tm ++; + /* XXX: questionable fallthrough */ case OSCR5: tm ++; + /* XXX: questionable fallthrough */ case OSCR4: if (!pxa2xx_timer_has_tm4(s)) goto badreg; @@ -207,12 +224,19 @@ static uint64_t pxa2xx_timer_read(void *opaque, hwaddr offset, case OWER: return s->reset3; case OMCR11: tm ++; + /* XXX: questionable fallthrough */ case OMCR10: tm ++; + /* XXX: questionable fallthrough */ case OMCR9: tm ++; + /* XXX: questionable fallthrough */ case OMCR8: tm ++; + /* XXX: questionable fallthrough */ case OMCR7: tm ++; + /* XXX: questionable fallthrough */ case OMCR6: tm ++; + /* XXX: questionable fallthrough */ case OMCR5: tm ++; + /* XXX: questionable fallthrough */ case OMCR4: if (!pxa2xx_timer_has_tm4(s)) goto badreg; @@ -235,19 +259,29 @@ static void pxa2xx_timer_write(void *opaque, hwaddr offset, switch (offset) { case OSMR3: tm ++; + /* XXX: questionable fallthrough */ case OSMR2: tm ++; + /* XXX: questionable fallthrough */ case OSMR1: tm ++; + /* XXX: questionable fallthrough */ case OSMR0: s->timer[tm].value = value; pxa2xx_timer_update(s, qemu_get_clock_ns(vm_clock)); break; case OSMR11: tm ++; + /* XXX: questionable fallthrough */ case OSMR10: tm ++; + /* XXX: questionable fallthrough */ case OSMR9: tm ++; + /* XXX: questionable fallthrough */ case OSMR8: tm ++; + /* XXX: questionable fallthrough */ case OSMR7: tm ++; + /* XXX: questionable fallthrough */ case OSMR6: tm ++; + /* XXX: questionable fallthrough */ case OSMR5: tm ++; + /* XXX: questionable fallthrough */ case OSMR4: if (!pxa2xx_timer_has_tm4(s)) goto badreg; @@ -261,12 +295,19 @@ static void pxa2xx_timer_write(void *opaque, hwaddr offset, pxa2xx_timer_update(s, s->lastload); break; case OSCR11: tm ++; + /* XXX: questionable fallthrough */ case OSCR10: tm ++; + /* XXX: questionable fallthrough */ case OSCR9: tm ++; + /* XXX: questionable fallthrough */ case OSCR8: tm ++; + /* XXX: questionable fallthrough */ case OSCR7: tm ++; + /* XXX: questionable fallthrough */ case OSCR6: tm ++; + /* XXX: questionable fallthrough */ case OSCR5: tm ++; + /* XXX: questionable fallthrough */ case OSCR4: if (!pxa2xx_timer_has_tm4(s)) goto badreg; @@ -291,8 +332,11 @@ static void pxa2xx_timer_write(void *opaque, hwaddr offset, s->reset3 = value; break; case OMCR7: tm ++; + /* XXX: questionable fallthrough */ case OMCR6: tm ++; + /* XXX: questionable fallthrough */ case OMCR5: tm ++; + /* XXX: questionable fallthrough */ case OMCR4: if (!pxa2xx_timer_has_tm4(s)) goto badreg; @@ -306,8 +350,11 @@ static void pxa2xx_timer_write(void *opaque, hwaddr offset, } break; case OMCR11: tm ++; + /* XXX: questionable fallthrough */ case OMCR10: tm ++; + /* XXX: questionable fallthrough */ case OMCR9: tm ++; + /* XXX: questionable fallthrough */ case OMCR8: tm += 4; if (!pxa2xx_timer_has_tm4(s)) goto badreg; diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c index 267a942..d70170d 100644 --- a/hw/scsi-bus.c +++ b/hw/scsi-bus.c @@ -888,6 +888,7 @@ static int scsi_req_length(SCSICommand *cmd, SCSIDevice *dev, uint8_t *buf) if (cmd->xfer == 0) { cmd->xfer = 256; } + /* XXX: questionable fallthrough */ case WRITE_10: case WRITE_VERIFY_10: case WRITE_12: @@ -902,6 +903,7 @@ static int scsi_req_length(SCSICommand *cmd, SCSIDevice *dev, uint8_t *buf) if (cmd->xfer == 0) { cmd->xfer = 256; } + /* XXX: questionable fallthrough */ case READ_10: case RECOVER_BUFFERED_DATA: case READ_12: diff --git a/hw/sh_timer.c b/hw/sh_timer.c index 64ea23f..d6f15b1 100644 --- a/hw/sh_timer.c +++ b/hw/sh_timer.c @@ -73,6 +73,7 @@ static uint32_t sh_timer_read(void *opaque, hwaddr offset) case OFFSET_TCPR: if (s->feat & TIMER_FEAT_CAPT) return s->tcpr; + /* XXX: questionable fallthrough */ default: hw_error("sh_timer_read: Bad offset %x\n", (int)offset); return 0; @@ -111,6 +112,7 @@ static void sh_timer_write(void *opaque, hwaddr offset, case 4: freq >>= 10; break; case 6: case 7: if (s->feat & TIMER_FEAT_EXTCLK) break; + /* XXX: questionable fallthrough */ default: hw_error("sh_timer_write: Reserved TPSC value\n"); break; } switch ((value & TIMER_TCR_CKEG) >> 3) { @@ -118,12 +120,14 @@ static void sh_timer_write(void *opaque, hwaddr offset, case 1: case 2: case 3: if (s->feat & TIMER_FEAT_EXTCLK) break; + /* XXX: questionable fallthrough */ default: hw_error("sh_timer_write: Reserved CKEG value\n"); break; } switch ((value & TIMER_TCR_ICPE) >> 6) { case 0: break; case 2: case 3: if (s->feat & TIMER_FEAT_CAPT) break; + /* XXX: questionable fallthrough */ default: hw_error("sh_timer_write: Reserved ICPE value\n"); break; } if ((value & TIMER_TCR_UNF) == 0) @@ -151,6 +155,7 @@ static void sh_timer_write(void *opaque, hwaddr offset, s->tcpr = value; break; } + /* XXX: questionable fallthrough */ default: hw_error("sh_timer_write: Bad offset %x\n", (int)offset); } diff --git a/hw/smc91c111.c b/hw/smc91c111.c index a34698f..08d6829 100644 --- a/hw/smc91c111.c +++ b/hw/smc91c111.c @@ -442,6 +442,7 @@ static void smc91c111_writeb(void *opaque, hwaddr offset, return; case 12: /* Early receive. */ s->ercv = value & 0x1f; + /* XXX: questionable fallthrough */ case 13: /* Ignore. */ return; diff --git a/hw/stellaris.c b/hw/stellaris.c index b5e78ff..a2e2457 100644 --- a/hw/stellaris.c +++ b/hw/stellaris.c @@ -182,8 +182,10 @@ static uint64_t gptm_read(void *opaque, hwaddr offset, case 0x48: /* TAR */ if (s->control == 1) return s->rtc; + /* XXX: questionable fallthrough */ case 0x4c: /* TBR */ hw_error("TODO: Timer value read\n"); + /* XXX: questionable fallthrough */ default: hw_error("gptm_read: Bad offset 0x%x\n", (int)offset); return 0; diff --git a/hw/tcx.c b/hw/tcx.c index 0ce2952..889c5c9 100644 --- a/hw/tcx.c +++ b/hw/tcx.c @@ -465,6 +465,7 @@ static void tcx_dac_writel(void *opaque, hwaddr addr, uint64_t val, s->b[s->dac_index] = val >> 24; update_palette_entries(s, s->dac_index, s->dac_index + 1); s->dac_index = (s->dac_index + 1) & 255; // Index autoincrement + /* XXX: questionable fallthrough */ default: s->dac_state = 0; break; diff --git a/hw/twl92230.c b/hw/twl92230.c index 70d9b03..dfa1c51 100644 --- a/hw/twl92230.c +++ b/hw/twl92230.c @@ -268,28 +268,42 @@ static uint8_t menelaus_read(void *opaque, uint8_t addr) return 0x22; case MENELAUS_VCORE_CTRL5: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_VCORE_CTRL4: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_VCORE_CTRL3: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_VCORE_CTRL2: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_VCORE_CTRL1: return s->vcore[reg]; case MENELAUS_DCDC_CTRL3: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_DCDC_CTRL2: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_DCDC_CTRL1: return s->dcdc[reg]; case MENELAUS_LDO_CTRL8: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL7: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL6: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL5: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL4: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL3: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL2: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_LDO_CTRL1: return s->ldo[reg]; case MENELAUS_SLEEP_CTRL2: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_SLEEP_CTRL1: return s->sleep[reg]; @@ -386,7 +400,9 @@ static uint8_t menelaus_read(void *opaque, uint8_t addr) return s->pull[3]; case MENELAUS_MCT_CTRL3: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_MCT_CTRL2: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_MCT_CTRL1: return s->mmc_ctrl[reg]; case MENELAUS_MCT_PIN_ST: @@ -487,6 +503,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value) break; case MENELAUS_SLEEP_CTRL2: reg ++; + /* XXX: questionable fallthrough */ case MENELAUS_SLEEP_CTRL1: s->sleep[reg] = value; break; diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c index 6a2f5f8..8004f6b 100644 --- a/hw/usb/hcd-ohci.c +++ b/hw/usb/hcd-ohci.c @@ -1103,6 +1103,7 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed) case USB_RET_IOERROR: case USB_RET_NODEV: OHCI_SET_BM(td.flags, TD_CC, OHCI_CC_DEVICENOTRESPONDING); + /* XXX: questionable fallthrough */ case USB_RET_NAK: DPRINTF("usb-ohci: got NAK\n"); return 1; @@ -1737,6 +1738,7 @@ static void ohci_mem_write(void *opaque, case 24: /* HcStatus */ ohci->hstatus &= ~(val & ohci->hmask); + /* XXX: questionable fallthrough */ case 25: /* HcHReset */ ohci->hreset = val & ~OHCI_HRESET_FSBIR; if (val & OHCI_HRESET_FSBIR) diff --git a/linux-user/main.c b/linux-user/main.c index 0181bc2..f0cbcc2 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -2211,18 +2211,22 @@ void cpu_loop(CPUMIPSState *env) if ((ret = get_user_ual(arg8, sp_reg + 28)) != 0) { goto done_syscall; } + /* XXX: questionable fallthrough */ case 7: if ((ret = get_user_ual(arg7, sp_reg + 24)) != 0) { goto done_syscall; } + /* XXX: questionable fallthrough */ case 6: if ((ret = get_user_ual(arg6, sp_reg + 20)) != 0) { goto done_syscall; } + /* XXX: questionable fallthrough */ case 5: if ((ret = get_user_ual(arg5, sp_reg + 16)) != 0) { goto done_syscall; } + /* XXX: questionable fallthrough */ default: break; } diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 693e66f..f20632d 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -8458,6 +8458,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, goto unimplemented_nowarn; #endif #endif + /* XXX: questionable fallthrough */ #ifdef TARGET_NR_get_thread_area case TARGET_NR_get_thread_area: #if defined(TARGET_I386) && defined(TARGET_ABI32) diff --git a/target-i386/translate.c b/target-i386/translate.c index 32d21f5..be0fc85 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -3797,6 +3797,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b, case 0x138: if (s->prefix & PREFIX_REPNZ) goto crc32; + /* XXX: questionable fallthrough */ case 0x038: b = modrm; modrm = cpu_ldub_code(env, s->pc++); @@ -4412,6 +4413,7 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s, case 0x82: if (CODE64(s)) goto illegal_op; + /* XXX: questionable fallthrough */ case 0x80: /* GRP1 */ case 0x81: case 0x83: @@ -7790,6 +7792,7 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s, case 0x10e ... 0x10f: /* 3DNow! instructions, ignore prefixes */ s->prefix &= ~(PREFIX_REPZ | PREFIX_REPNZ | PREFIX_DATA); + /* XXX: questionable fallthrough */ case 0x110 ... 0x117: case 0x128 ... 0x12f: case 0x138 ... 0x13a: diff --git a/target-mips/translate.c b/target-mips/translate.c index 206ba83..9762695 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -4243,6 +4243,7 @@ static void gen_mfc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i // gen_helper_mfc0_contextconfig(arg); /* SmartMIPS ASE */ rn = "ContextConfig"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -4523,18 +4524,22 @@ static void gen_mfc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i // gen_helper_mfc0_tracecontrol(arg); /* PDtrace support */ rn = "TraceControl"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_mfc0_tracecontrol2(arg); /* PDtrace support */ rn = "TraceControl2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_mfc0_usertracedata(arg); /* PDtrace support */ rn = "UserTraceData"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_mfc0_tracebpc(arg); /* PDtrace support */ rn = "TraceBPC"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -4561,30 +4566,37 @@ static void gen_mfc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i // gen_helper_mfc0_performance1(arg); rn = "Performance1"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_mfc0_performance2(arg); rn = "Performance2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_mfc0_performance3(arg); rn = "Performance3"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_mfc0_performance4(arg); rn = "Performance4"; // break; + /* XXX: questionable fallthrough */ case 5: // gen_helper_mfc0_performance5(arg); rn = "Performance5"; // break; + /* XXX: questionable fallthrough */ case 6: // gen_helper_mfc0_performance6(arg); rn = "Performance6"; // break; + /* XXX: questionable fallthrough */ case 7: // gen_helper_mfc0_performance7(arg); rn = "Performance7"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -4823,6 +4835,7 @@ static void gen_mtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i // gen_helper_mtc0_contextconfig(cpu_env, arg); /* SmartMIPS ASE */ rn = "ContextConfig"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -5105,12 +5118,14 @@ static void gen_mtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_mtc0_tracecontrol2(cpu_env, arg); /* PDtrace support */ rn = "TraceControl2"; /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; // break; + /* XXX: questionable fallthrough */ case 3: /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; @@ -5119,12 +5134,14 @@ static void gen_mtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_mtc0_tracebpc(cpu_env, arg); /* PDtrace support */ /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; rn = "TraceBPC"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -5150,30 +5167,37 @@ static void gen_mtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, i // gen_helper_mtc0_performance1(arg); rn = "Performance1"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_mtc0_performance2(arg); rn = "Performance2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_mtc0_performance3(arg); rn = "Performance3"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_mtc0_performance4(arg); rn = "Performance4"; // break; + /* XXX: questionable fallthrough */ case 5: // gen_helper_mtc0_performance5(arg); rn = "Performance5"; // break; + /* XXX: questionable fallthrough */ case 6: // gen_helper_mtc0_performance6(arg); rn = "Performance6"; // break; + /* XXX: questionable fallthrough */ case 7: // gen_helper_mtc0_performance7(arg); rn = "Performance7"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -5417,6 +5441,7 @@ static void gen_dmfc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, // gen_helper_dmfc0_contextconfig(arg); /* SmartMIPS ASE */ rn = "ContextConfig"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -5690,18 +5715,22 @@ static void gen_dmfc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, // gen_helper_dmfc0_tracecontrol(arg, cpu_env); /* PDtrace support */ rn = "TraceControl"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_dmfc0_tracecontrol2(arg, cpu_env); /* PDtrace support */ rn = "TraceControl2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_dmfc0_usertracedata(arg, cpu_env); /* PDtrace support */ rn = "UserTraceData"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_dmfc0_tracebpc(arg, cpu_env); /* PDtrace support */ rn = "TraceBPC"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -5727,30 +5756,37 @@ static void gen_dmfc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, // gen_helper_dmfc0_performance1(arg); rn = "Performance1"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_dmfc0_performance2(arg); rn = "Performance2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_dmfc0_performance3(arg); rn = "Performance3"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_dmfc0_performance4(arg); rn = "Performance4"; // break; + /* XXX: questionable fallthrough */ case 5: // gen_helper_dmfc0_performance5(arg); rn = "Performance5"; // break; + /* XXX: questionable fallthrough */ case 6: // gen_helper_dmfc0_performance6(arg); rn = "Performance6"; // break; + /* XXX: questionable fallthrough */ case 7: // gen_helper_dmfc0_performance7(arg); rn = "Performance7"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -5989,6 +6025,7 @@ static void gen_dmtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, // gen_helper_mtc0_contextconfig(cpu_env, arg); /* SmartMIPS ASE */ rn = "ContextConfig"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -6274,24 +6311,28 @@ static void gen_dmtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, ctx->bstate = BS_STOP; rn = "TraceControl"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_mtc0_tracecontrol2(cpu_env, arg); /* PDtrace support */ /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; rn = "TraceControl2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_mtc0_usertracedata(cpu_env, arg); /* PDtrace support */ /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; rn = "UserTraceData"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_mtc0_tracebpc(cpu_env, arg); /* PDtrace support */ /* Stop translation as we may have switched the execution mode */ ctx->bstate = BS_STOP; rn = "TraceBPC"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -6317,30 +6358,37 @@ static void gen_dmtc0 (CPUMIPSState *env, DisasContext *ctx, TCGv arg, int reg, // gen_helper_mtc0_performance1(cpu_env, arg); rn = "Performance1"; // break; + /* XXX: questionable fallthrough */ case 2: // gen_helper_mtc0_performance2(cpu_env, arg); rn = "Performance2"; // break; + /* XXX: questionable fallthrough */ case 3: // gen_helper_mtc0_performance3(cpu_env, arg); rn = "Performance3"; // break; + /* XXX: questionable fallthrough */ case 4: // gen_helper_mtc0_performance4(cpu_env, arg); rn = "Performance4"; // break; + /* XXX: questionable fallthrough */ case 5: // gen_helper_mtc0_performance5(cpu_env, arg); rn = "Performance5"; // break; + /* XXX: questionable fallthrough */ case 6: // gen_helper_mtc0_performance6(cpu_env, arg); rn = "Performance6"; // break; + /* XXX: questionable fallthrough */ case 7: // gen_helper_mtc0_performance7(cpu_env, arg); rn = "Performance7"; // break; + /* XXX: questionable fallthrough */ default: goto die; } @@ -6506,6 +6554,7 @@ static void gen_mftr(CPUMIPSState *env, DisasContext *ctx, int rt, int rd, gen_mfc0(env, ctx, t0, rt, sel); break; } + /* XXX: questionable fallthrough */ case 12: switch (sel) { case 0: @@ -6515,6 +6564,7 @@ static void gen_mftr(CPUMIPSState *env, DisasContext *ctx, int rt, int rd, gen_mfc0(env, ctx, t0, rt, sel); break; } + /* XXX: questionable fallthrough */ case 13: switch (sel) { case 0: @@ -6724,6 +6774,7 @@ static void gen_mttr(CPUMIPSState *env, DisasContext *ctx, int rd, int rt, gen_mtc0(env, ctx, t0, rd, sel); break; } + /* XXX: questionable fallthrough */ case 12: switch (sel) { case 0: @@ -6733,6 +6784,7 @@ static void gen_mttr(CPUMIPSState *env, DisasContext *ctx, int rd, int rt, gen_mtc0(env, ctx, t0, rd, sel); break; } + /* XXX: questionable fallthrough */ case 13: switch (sel) { case 0: @@ -15382,6 +15434,7 @@ static void decode_opc (CPUMIPSState *env, DisasContext *ctx, int *is_branch) case OPC_MFHC1: case OPC_MTHC1: check_insn(env, ctx, ISA_MIPS32R2); + /* XXX: questionable fallthrough */ case OPC_MFC1: case OPC_CFC1: case OPC_MTC1: @@ -15515,6 +15568,7 @@ static void decode_opc (CPUMIPSState *env, DisasContext *ctx, int *is_branch) case OPC_MDMX: check_insn(env, ctx, ASE_MDMX); /* MDMX: Not implemented. */ + /* XXX: questionable fallthrough */ default: /* Invalid */ MIPS_INVAL("major opcode"); generate_exception(ctx, EXCP_RI); diff --git a/target-ppc/mmu_helper.c b/target-ppc/mmu_helper.c index 0aee7a9..2cf18fc 100644 --- a/target-ppc/mmu_helper.c +++ b/target-ppc/mmu_helper.c @@ -1740,6 +1740,7 @@ static int get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, if (env->nb_BATs != 0) { ret = get_bat(env, ctx, eaddr, rw, access_type); } + /* XXX: questionable fallthrough */ #if defined(TARGET_PPC64) case POWERPC_MMU_620: case POWERPC_MMU_64B: diff --git a/target-s390x/translate.c b/target-s390x/translate.c index a57296c..be7c098 100644 --- a/target-s390x/translate.c +++ b/target-s390x/translate.c @@ -3089,6 +3089,7 @@ static ExitStatus op_srnm(DisasContext *s, DisasOps *o) break; case 0xb9: /* SRNMT */ pos = 4, len = 3; + /* XXX: questionable fallthrough */ default: tcg_abort(); } diff --git a/target-sparc/ldst_helper.c b/target-sparc/ldst_helper.c index cf1bddf..2a8d86f 100644 --- a/target-sparc/ldst_helper.c +++ b/target-sparc/ldst_helper.c @@ -1175,6 +1175,7 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr, int asi, int size, default: break; } + /* XXX: questionable fallthrough */ default: break; } @@ -1231,6 +1232,7 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, target_ulong val, default: break; } + /* XXX: questionable fallthrough */ default: break; } @@ -1615,6 +1617,7 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr, int asi, int size, default: break; } + /* XXX: questionable fallthrough */ default: break; } @@ -1682,6 +1685,7 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, target_ulong val, default: break; } + /* XXX: questionable fallthrough */ default: break; } diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c index f4498bc..b92437b 100644 --- a/target-unicore32/translate.c +++ b/target-unicore32/translate.c @@ -1887,6 +1887,7 @@ static void disas_uc32_insn(CPUUniCore32State *env, DisasContext *s) do_misc(env, s, insn); break; } + /* XXX: questionable fallthrough */ case 0x1: if (((UCOP_OPCODES >> 2) == 2) && !UCOP_SET_S) { do_misc(env, s, insn); @@ -1903,6 +1904,7 @@ static void disas_uc32_insn(CPUUniCore32State *env, DisasContext *s) if (UCOP_SET(8) || UCOP_SET(5)) { ILLEGAL; } + /* XXX: questionable fallthrough */ case 0x3: do_ldst_ir(env, s, insn); break; diff --git a/target-xtensa/op_helper.c b/target-xtensa/op_helper.c index 3813a72..d829702 100644 --- a/target-xtensa/op_helper.c +++ b/target-xtensa/op_helper.c @@ -443,8 +443,10 @@ void HELPER(check_atomctl)(CPUXtensaState *env, uint32_t pc, uint32_t vaddr) switch (access & PAGE_CACHE_MASK) { case PAGE_CACHE_WB: atomctl >>= 2; + /* XXX: questionable fallthrough */ case PAGE_CACHE_WT: atomctl >>= 2; + /* XXX: questionable fallthrough */ case PAGE_CACHE_BYPASS: if ((atomctl & 0x3) == 0) { HELPER(exception_cause_vaddr)(env, pc, diff --git a/tcg/optimize.c b/tcg/optimize.c index 973d2d6..bced966 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -635,6 +635,7 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr, if ((temps[args[1]].mask & 0x80) != 0) { break; } + /* XXX: questionable fallthrough */ CASE_OP_32_64(ext8u): mask = 0xff; goto and_const; @@ -642,6 +643,7 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr, if ((temps[args[1]].mask & 0x8000) != 0) { break; } + /* XXX: questionable fallthrough */ CASE_OP_32_64(ext16u): mask = 0xffff; goto and_const; @@ -649,6 +651,7 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr, if ((temps[args[1]].mask & 0x80000000) != 0) { break; } + /* XXX: questionable fallthrough */ case INDEX_op_ext32u_i64: mask = 0xffffffffU; goto and_const; diff --git a/ui/sdl.c b/ui/sdl.c index 1657848..aeceb7a 100644 --- a/ui/sdl.c +++ b/ui/sdl.c @@ -552,6 +552,7 @@ static void handle_keydown(DisplayState *ds, SDL_Event *ev) vga_hw_update(); gui_keysym = 1; } + /* XXX: questionable fallthrough */ default: break; }