From b9dfd082e126b8d2f56d10c7019dbc34f24897b5 Mon Sep 17 00:00:00 2001 From: qeeg Date: Thu, 4 Feb 2021 16:10:53 -0600 Subject: [PATCH 1/2] Fixes to legitimate issues Sonarcloud caught in our code --- src/chipset/intel_4x0.c | 3 +++ src/cpu/cpu.c | 5 +++++ src/video/vid_ati28800.c | 1 + src/video/vid_cl54xx.c | 1 + src/video/vid_voodoo_reg.c | 6 ++++++ 5 files changed, 16 insertions(+) diff --git a/src/chipset/intel_4x0.c b/src/chipset/intel_4x0.c index 981464ba7..2a4f62dc9 100644 --- a/src/chipset/intel_4x0.c +++ b/src/chipset/intel_4x0.c @@ -939,6 +939,7 @@ i4x0_write(int func, int addr, uint8_t val, void *priv) regs[0x7c] = val & 0x1f; break; } + break; case 0x7d: switch (dev->type) { case INTEL_420TX: case INTEL_420ZX: @@ -946,6 +947,7 @@ i4x0_write(int func, int addr, uint8_t val, void *priv) regs[0x7d] = val & 0x32; break; } + break; case 0x7e: case 0x7f: switch (dev->type) { case INTEL_420TX: case INTEL_420ZX: @@ -953,6 +955,7 @@ i4x0_write(int func, int addr, uint8_t val, void *priv) regs[addr] = val; break; } + break; case 0x80: switch (dev->type) { case INTEL_440BX: case INTEL_440ZX: diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index abd6d3e24..3fc4d43df 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -2653,9 +2653,11 @@ void cpu_RDMSR() { case 0x1000: EAX = ibm_por_msr & 0xfeff; + break; case 0x1001: EAX = ibm_crcr_msr & 0xffffffffff; + break; } break; @@ -2666,13 +2668,16 @@ void cpu_RDMSR() { case 0x1000: EAX = ibm_por_msr & 0xffeff; + break; case 0x1001: EAX = ibm_crcr_msr & 0xffffffffff; + break; if (cpu_s->multi) { case 0x1002: EAX = ibm_por2_msr & 0x3f000000; + break; } } break; diff --git a/src/video/vid_ati28800.c b/src/video/vid_ati28800.c index da7fc4fcc..f62c7fecf 100644 --- a/src/video/vid_ati28800.c +++ b/src/video/vid_ati28800.c @@ -265,6 +265,7 @@ ati28800k_out(uint16_t addr, uint8_t val, void *p) } break; } + break; default: ati28800_out(oldaddr, val, p); break; diff --git a/src/video/vid_cl54xx.c b/src/video/vid_cl54xx.c index d08863952..3cee64857 100644 --- a/src/video/vid_cl54xx.c +++ b/src/video/vid_cl54xx.c @@ -767,6 +767,7 @@ gd54xx_out(uint16_t addr, uint8_t val, void *p) svga->seqregs[svga->seqaddr] &= 0x0f; if (svga->crtc[0x27] >= CIRRUS_ID_CLGD5429) svga->set_reset_disabled = svga->seqregs[7] & 1; + break; case 0x17: if (gd54xx_is_5422(svga)) gd543x_recalc_mapping(gd54xx); diff --git a/src/video/vid_voodoo_reg.c b/src/video/vid_voodoo_reg.c index 2f3460e65..3aa231f8e 100644 --- a/src/video/vid_voodoo_reg.c +++ b/src/video/vid_voodoo_reg.c @@ -1071,6 +1071,7 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) } break; } + break; case SST_nccTable0_I2: if (!(val & (1 << 31))) { @@ -1086,6 +1087,7 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) } break; } + break; case SST_nccTable0_Q0: if (!(val & (1 << 31))) { @@ -1101,6 +1103,7 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) } break; } + break; case SST_nccTable0_Q2: if (!(val & (1 << 31))) { @@ -1147,6 +1150,7 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) } break; } + break; case SST_nccTable0_I3: if (!(val & (1 << 31))) { @@ -1162,6 +1166,7 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) } break; } + break; case SST_nccTable0_Q1: if (!(val & (1 << 31))) { @@ -1177,6 +1182,7 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) } break; } + break; case SST_nccTable0_Q3: if (!(val & (1 << 31))) { From b377927f9cf9a0160d0586f06a95308d6224298f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Hrdli=C4=8Dka?= Date: Fri, 5 Feb 2021 01:10:20 +0100 Subject: [PATCH 2/2] cmake: LNK1322 workaround ref #1268 --- CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b130c1d92..fde8c8514 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,4 +70,16 @@ CMAKE_DEPENDENT_OPTION(XL24 "ATI VGA Wonder XL24 (ATI-28800-6)" ON "DEV_BRANCH" CMAKE_DEPENDENT_OPTION(VECT486VL "HP Vectra 486VL" ON "DEV_BRANCH" OFF) CMAKE_DEPENDENT_OPTION(DELLS4 "Dell Dimension XPS P60; Dell OptiPlex 560/L" ON "DEV_BRANCH" OFF) +# HACK: Avoid a MSVC2019 compiler bug on ARM64 Debug builds +if(MSVC_TOOLSET_VERSION GREATER_EQUAL 142 AND CMAKE_TARGET_ARCHITECTURES STREQUAL "armv8") + # Define a cache option in case somebody wants to disable this workaround + set(AVOID_LNK1322 ON CACHE BOOL "Prevent LNK1322 on MSVC2019 ARM64 debug builds") + + if(AVOID_LNK1322) + message(STATUS "Working around LNK1322 (#1268)") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Gy") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Gy") + endif() +endif() + add_subdirectory(src)