Only use /EHa in MSVC

This commit is contained in:
CocoSimone
2023-02-12 15:28:59 +01:00
parent 9d77edb1fe
commit a81587ec21
4 changed files with 26 additions and 25 deletions

View File

@@ -12,10 +12,12 @@ add_library(imgui
imgui/backends/imgui_impl_vulkan.h
imgui/backends/imgui_impl_vulkan.cpp)
#if(WIN32)
# target_compile_definitions(imgui PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS)
# target_compile_options(imgui PUBLIC /EHa)
#endif()
if(WIN32)
target_compile_definitions(imgui PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS)
if(MSVC)
target_compile_options(imgui PUBLIC /EHa)
endif()
endif()
target_include_directories(imgui PUBLIC ../parallel-rdp/parallel-rdp-standalone/volk
../parallel-rdp/parallel-rdp-standalone/vulkan-headers/include)

View File

@@ -45,8 +45,12 @@ add_library(parallel-rdp
)
if(WIN32)
target_compile_definitions(parallel-rdp PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS)
target_compile_options(parallel-rdp PUBLIC /EHa)
target_compile_definitions(parallel-rdp PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS VK_USE_PLATFORM_WIN32_KHR)
if(MSVC)
target_compile_options(parallel-rdp PUBLIC /EHa)
endif()
else()
target_link_libraries(parallel-rdp PUBLIC dl)
endif()
target_compile_definitions(parallel-rdp PUBLIC GRANITE_VULKAN_MT)
@@ -58,10 +62,4 @@ target_include_directories(parallel-rdp PUBLIC
parallel-rdp-standalone/vulkan
parallel-rdp-standalone/vulkan-headers/include
parallel-rdp-standalone/util
)
if(WIN32)
target_compile_definitions(parallel-rdp PUBLIC VK_USE_PLATFORM_WIN32_KHR)
else()
target_link_libraries(parallel-rdp PUBLIC dl)
endif()
)

View File

@@ -66,5 +66,7 @@ target_link_libraries(gadolinium PUBLIC frontend frontend-imgui
if(WIN32)
target_compile_definitions(gadolinium PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS)
target_compile_options(gadolinium PUBLIC /EHa)
if(MSVC)
target_compile_options(parallel-rdp PUBLIC /EHa)
endif()
endif()

View File

@@ -80,20 +80,19 @@ void AI::Step(Mem& mem, Registers& regs, int cpuCycles, float volumeL, float vol
return;
}
if(dmaLen[0] && dmaEnable) {
if(dmaLen[0] && dmaEnable) {u32 addrHi = ((dmaAddr[0] >> 13) + dmaAddrCarry) & 0x7FF;
dmaAddr[0] = (addrHi << 13) | (dmaAddr[0] & 0x1FFF);
u32 data = Util::ReadAccess<u32>(mem.mmio.rdp.rdram.data(), dmaAddr[0] & RDRAM_DSIZE);
s16 l = s16(data >> 16);
s16 r = s16(data);
if(volumeR > 0 && volumeL > 0) {
u32 addrHi = ((dmaAddr[0] >> 13) + dmaAddrCarry) & 0x7FF;
dmaAddr[0] = (addrHi << 13) | (dmaAddr[0] & 0x1FFF);
u32 data = Util::ReadAccess<u32>(mem.mmio.rdp.rdram.data(), dmaAddr[0] & RDRAM_DSIZE);
s16 l = s16(data >> 16);
s16 r = s16(data);
PushSample((float) l / INT16_MAX, volumeL, (float) r / INT16_MAX, volumeR);
u32 addrLo = (dmaAddr[0] + 4) & 0x1FFF;
dmaAddr[0] = (dmaAddr[0] & ~0x1FFF) | addrLo;
dmaAddrCarry = addrLo == 0;
}
u32 addrLo = (dmaAddr[0] + 4) & 0x1FFF;
dmaAddr[0] = (dmaAddr[0] & ~0x1FFF) | addrLo;
dmaAddrCarry = addrLo == 0;
dmaLen[0] -= 4;
}