mirror of
https://github.com/libretro/Mu.git
synced 2026-07-08 17:57:01 +00:00
Move EMU_* variables out of platform make files
This commit is contained in:
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@@ -14,6 +14,7 @@ Core:
|
||||
*add ARM optimized 68k CPU core(not fully working yet, SIGSEGVs when running)
|
||||
*allow safety checks to be disabled with EMU_NO_SAFETY, accuracy is maintained when its not defined
|
||||
*switch byte buffer orders to optimize for 16 bit opcode fetches
|
||||
*cyclone68000 reenabled for ARM devices, SIGSEGVs seem to be gone
|
||||
|
||||
------------------------------------------
|
||||
v0.9 to v0.9.5(Sept 22 2018 - Oct 18 2018)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
DEBUG=0
|
||||
DEBUG = 0
|
||||
GIT_VERSION := " $(shell git rev-parse --short HEAD)"
|
||||
STATIC_LINKING=0
|
||||
STATIC_LINKING_LINK=0
|
||||
STATIC_LINKING = 0
|
||||
STATIC_LINKING_LINK = 0
|
||||
|
||||
CORE_DIR := .
|
||||
BUILD_DIR = build
|
||||
@@ -15,6 +15,10 @@ else ifeq ($(platform),linux_x86)
|
||||
include $(BUILD_DIR)/Makefile.linux_x86
|
||||
else ifeq ($(platform),linux_x86_64)
|
||||
include $(BUILD_DIR)/Makefile.linux_x86_64
|
||||
else ifeq ($(platform),osx_x86)
|
||||
include $(BUILD_DIR)/Makefile.osx_x86
|
||||
else ifeq ($(platform),osx_x86_64)
|
||||
include $(BUILD_DIR)/Makefile.osx_x86_64
|
||||
else ifeq ($(platform),mingw_x86)
|
||||
include $(BUILD_DIR)/Makefile.mingw_x86
|
||||
else ifeq ($(platform),mingw_x86_64)
|
||||
@@ -118,7 +122,7 @@ else ifeq ($(platform), osx)
|
||||
TARGET := $(TARGET_NAME)_libretro.$(EXT)
|
||||
fpic := -fPIC
|
||||
ifeq ($(arch),ppc)
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
endif
|
||||
OSXVER = $(shell sw_vers -productVersion | cut -d. -f 2)
|
||||
OSX_GT_MOJAVE = $(shell (( $(OSXVER) >= 14)) && echo "YES")
|
||||
@@ -143,8 +147,6 @@ ifeq ($(platform),ios-arm64)
|
||||
CC = cc -arch arm64 -isysroot $(IOSSDK)
|
||||
else
|
||||
CC = cc -arch armv7 -isysroot $(IOSSDK)
|
||||
# EMU_OPTIMIZE_FOR_ARM = 1
|
||||
# EMU_NEW_ASM_SYNTAX = 1
|
||||
endif
|
||||
|
||||
LD = armv7-apple-darwin11-ld
|
||||
@@ -177,7 +179,6 @@ else ifeq ($(platform), qnx)
|
||||
CC = qcc -Vgcc_ntoarmv7le
|
||||
AR = qcc -Vgcc_ntoarmv7le
|
||||
CFLAGS += -D__BLACKBERRY_QNX__
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
|
||||
# PS3
|
||||
else ifeq ($(platform), ps3)
|
||||
@@ -185,7 +186,7 @@ else ifeq ($(platform), ps3)
|
||||
TARGET := $(TARGET_NAME)_libretro_ps3.$(EXT)
|
||||
CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
|
||||
AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
|
||||
@@ -195,7 +196,7 @@ else ifeq ($(platform), sncps3)
|
||||
TARGET := $(TARGET_NAME)_libretro_ps3.$(EXT)
|
||||
CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
|
||||
AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
|
||||
@@ -205,7 +206,7 @@ else ifeq ($(platform), psl1ght)
|
||||
TARGET := $(TARGET_NAME)_libretro_$(platform).$(EXT)
|
||||
CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
|
||||
AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
|
||||
@@ -238,7 +239,6 @@ else ifeq ($(platform), vita)
|
||||
CFLAGS += -DVITA
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
|
||||
# CTR (3DS)
|
||||
else ifeq ($(platform), ctr)
|
||||
@@ -253,7 +253,6 @@ else ifeq ($(platform), ctr)
|
||||
CFLAGS += -D_3DS
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
|
||||
# Raspberry Pi 2
|
||||
else ifeq ($(platform), rpi2)
|
||||
@@ -264,7 +263,6 @@ else ifeq ($(platform), rpi2)
|
||||
CFLAGS += -marm -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations
|
||||
CFLAGS += -fomit-frame-pointer -ffast-math
|
||||
HAVE_NEON = 1
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
|
||||
# Raspberry Pi 3
|
||||
else ifeq ($(platform), rpi3)
|
||||
@@ -307,7 +305,6 @@ else ifeq ($(platform), classic_armv7_a7)
|
||||
LDFLAGS += -static-libgcc -static-libstdc++
|
||||
endif
|
||||
endif
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
|
||||
# Xbox 360
|
||||
else ifeq ($(platform), xenon)
|
||||
@@ -325,7 +322,7 @@ else ifeq ($(platform), ngc)
|
||||
TARGET := $(TARGET_NAME)_libretro_$(platform).$(EXT)
|
||||
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
|
||||
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
|
||||
CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
@@ -336,7 +333,7 @@ else ifeq ($(platform), wii)
|
||||
TARGET := $(TARGET_NAME)_libretro_$(platform).$(EXT)
|
||||
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
|
||||
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
|
||||
CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
@@ -347,7 +344,7 @@ else ifeq ($(platform), wiiu)
|
||||
TARGET := $(TARGET_NAME)_libretro_$(platform).$(EXT)
|
||||
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
|
||||
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
|
||||
CFLAGS += -DGEKKO -DHW_RVL -mwup -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
CFLAGS += -DGEKKO -DHW_RVL -mwup -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
|
||||
STATIC_LINKING = 1
|
||||
STATIC_LINKING_LINK = 1
|
||||
|
||||
@@ -15,11 +15,27 @@ ifneq (,$(findstring msvc200,$(platform)))
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring msvc20,$(platform)))
|
||||
#Mu is dependent on stdbool.h and the standard inline directive existing
|
||||
# Mu is dependent on stdbool.h and the standard inline directive existing
|
||||
INCFLAGS += -I$(CORE_DIR)/fixIncludes/stdbool
|
||||
COREDEFINES += -Dinline=_inline -DINLINE=_inline
|
||||
endif
|
||||
|
||||
ifneq (,$(filter ps3 sncps3 psl1ght ngc wii wiiu,$(platform)))
|
||||
COREDEFINES += -DEMU_BIG_ENDIAN
|
||||
else ifeq ($(platform), osx)
|
||||
ifeq ($(arch), ppc)
|
||||
COREDEFINES += -DEMU_BIG_ENDIAN
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(filter qnx vita ctr rpi2 classic_armv7_a7,$(platform)))
|
||||
EMU_OPTIMIZE_FOR_ARM32 = 1
|
||||
else ifneq (,$(findstring armv7,$(platform)))
|
||||
EMU_OPTIMIZE_FOR_ARM32 = 1
|
||||
else ifneq (,$(findstring armv6,$(platform)))
|
||||
EMU_OPTIMIZE_FOR_ARM32 = 1
|
||||
endif
|
||||
|
||||
include $(EMU_PATH)/makefile.all
|
||||
|
||||
COREDEFINES += $(EMU_DEFINES)
|
||||
|
||||
@@ -42,8 +42,8 @@ LIBEXT = .ps3_ppc.a
|
||||
STATIC_LINKING = 1
|
||||
platform = ps3
|
||||
PLATDEFS = -D__CELLOS_LV2__
|
||||
PLATCFLAGS = -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
PLATCXXFLAGS = -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
PLATCFLAGS = -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
PLATCXXFLAGS = -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
PLATLDFLAGS = -shared -lm
|
||||
PLATLDXFLAGS = -shared -lm
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ PLATCFLAGS = -ftree-vectorize -mfloat-abi=hard -ffast-math -fsingle-precisio
|
||||
PLATCXXFLAGS = -ftree-vectorize -mfloat-abi=hard -ffast-math -fsingle-precision-constant -funroll-loops -fno-short-enums
|
||||
PLATLDFLAGS = -shared -lm -mthumb -mcpu=cortex-a9 -mfloat-abi=hard
|
||||
PLATLDXFLAGS = -shared -lm -mthumb -mcpu=cortex-a9 -mfloat-abi=hard
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
|
||||
################
|
||||
# libretro setup
|
||||
|
||||
@@ -42,8 +42,8 @@ LIBEXT = .wii_ppc.a
|
||||
STATIC_LINKING = 1
|
||||
platform = wii
|
||||
PLATDEFS = -DGEKKO -DHW_RVL
|
||||
PLATCFLAGS = -m32 -fstrict-aliasing -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
PLATCXXFLAGS = -m32 -fstrict-aliasing -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST -DWORDS_BIGENDIAN=1 -DEMU_BIG_ENDIAN
|
||||
PLATCFLAGS = -m32 -fstrict-aliasing -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
PLATCXXFLAGS = -m32 -fstrict-aliasing -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST -DWORDS_BIGENDIAN=1
|
||||
PLATLDFLAGS = -shared -lm
|
||||
PLATLDXFLAGS = -shared -lm
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ endif
|
||||
#set ASM CPU core, only use with ARMv4<->7, ARMv8 is its own architecture
|
||||
ifeq ($(TARGET_ARCH),arm)
|
||||
ifneq ($(TARGET_ARCH_ABI),arm64-v8a)
|
||||
EMU_OPTIMIZE_FOR_ARM = 1
|
||||
EMU_OPTIMIZE_FOR_ARM32 = 1
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -32,14 +32,13 @@ windows{
|
||||
|
||||
macx{
|
||||
# QMAKE_CFLAGS += -std=c89 -D__STDBOOL_H -Dinline= -Dbool=char -Dtrue=1 -Dfalse=0 # tests C89 mode
|
||||
CONFIG += sdk_no_version_check # using 10.14 SDK which Qt only unofficialy supports
|
||||
# CONFIG += sdk_no_version_check # using 10.14 SDK which Qt only unofficialy supports
|
||||
ICON = macos/Mu.icns
|
||||
QMAKE_INFO_PLIST = macos/Info.plist
|
||||
DEFINES += EMU_MULTITHREADED
|
||||
}
|
||||
|
||||
linux-g++{
|
||||
message(This really shouldnt trigger yet!)
|
||||
QMAKE_CFLAGS += -fopenmp
|
||||
QMAKE_CXXFLAGS += -fopenmp
|
||||
QMAKE_LFLAGS += -fopenmp
|
||||
@@ -51,20 +50,20 @@ android{
|
||||
QMAKE_CXXFLAGS += -fopenmp
|
||||
QMAKE_LFLAGS += -fopenmp
|
||||
DEFINES += EMU_MULTITHREADED
|
||||
# CONFIG += optimize_for_arm # for now, later this will check if building for ARMv4<->7
|
||||
CONFIG += optimize_for_arm32 # for now, later this will check if building for ARMv4<->7
|
||||
}
|
||||
|
||||
# ios{
|
||||
# QMAKE_INFO_PLIST = ios/Info.plist
|
||||
# DEFINES += EMU_MULTITHREADED
|
||||
# CONFIG += optimize_for_arm
|
||||
# }
|
||||
ios{
|
||||
# QMAKE_INFO_PLIST = ios/Info.plist
|
||||
DEFINES += EMU_MULTITHREADED
|
||||
# iOS is now ARMv8 only, cyclone wont work
|
||||
}
|
||||
|
||||
|
||||
CONFIG(debug, debug|release){
|
||||
# debug build, be accurate, fail hard, and add logging
|
||||
DEFINES += EMU_DEBUG EMU_CUSTOM_DEBUG_LOG_HANDLER
|
||||
!optimize_for_arm:DEFINES += EMU_SANDBOX
|
||||
!optimize_for_arm32:DEFINES += EMU_SANDBOX
|
||||
macx|linux-g++{
|
||||
# DEFINES += EMU_SANDBOX_OPCODE_LEVEL_DEBUG
|
||||
# DEFINES += EMU_SANDBOX_LOG_APIS
|
||||
@@ -84,8 +83,8 @@ CONFIG += c++11
|
||||
INCLUDEPATH += $$PWD/qt-common/include
|
||||
|
||||
# only use with ARMv4<->7, ARMv8 is its own architecture
|
||||
optimize_for_arm{
|
||||
DEFINES += EMU_OPTIMIZE_FOR_ARM
|
||||
optimize_for_arm32{
|
||||
DEFINES += EMU_OPTIMIZE_FOR_ARM32
|
||||
SOURCES += ../../src/m68k/cyclone/CycloneNew.S
|
||||
}else{
|
||||
SOURCES += ../../src/m68k/musashi/m68kcpu.c \
|
||||
|
||||
@@ -17,7 +17,7 @@ extern "C" {
|
||||
|
||||
//DEFINE INFO!!!
|
||||
//define EMU_MULTITHREADED to speed up long loops
|
||||
//define EMU_OPTIMIZE_FOR_ARM to use ASM CPU core
|
||||
//define EMU_OPTIMIZE_FOR_ARM32 to use ASM CPU core
|
||||
//define EMU_NO_SAFETY to remove all safety checks
|
||||
//define EMU_BIG_ENDIAN on big endian systems
|
||||
//to enable degguging define EMU_DEBUG, all options below do nothing unless EMU_DEBUG is defined
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "hardwareRegisters.h"
|
||||
#include "memoryAccess.h"
|
||||
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
#include <stdlib.h>//for exit(1)
|
||||
#include "m68k/cyclone/Cyclone.h"
|
||||
#else
|
||||
@@ -14,7 +14,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
static struct Cyclone cycloneCpu;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ void flx68000Init(void){
|
||||
static bool inited = false;
|
||||
|
||||
if(!inited){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
CycloneInit();
|
||||
cycloneCpu.read8 = m68k_read_memory_8;
|
||||
cycloneCpu.read16 = m68k_read_memory_16;
|
||||
@@ -87,7 +87,7 @@ void flx68000Init(void){
|
||||
void flx68000Reset(void){
|
||||
resetHwRegisters();
|
||||
resetAddressSpace();//address space must be reset after hardware registers because it is dependent on them
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
CycloneReset(&cycloneCpu);
|
||||
#else
|
||||
m68k_pulse_reset();
|
||||
@@ -97,7 +97,7 @@ void flx68000Reset(void){
|
||||
uint64_t flx68000StateSize(void){
|
||||
uint64_t size = 0;
|
||||
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
size += 0x80;//specified in Cyclone.h, line 82
|
||||
#else
|
||||
size += sizeof(uint32_t) * 50;//m68ki_cpu
|
||||
@@ -108,7 +108,7 @@ uint64_t flx68000StateSize(void){
|
||||
|
||||
void flx68000SaveState(uint8_t* data){
|
||||
uint64_t offset = 0;
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
CyclonePack(&cycloneCpu, data + offset);
|
||||
offset += 0x80;//specified in Cyclone.h, line 82
|
||||
#else
|
||||
@@ -182,7 +182,7 @@ void flx68000SaveState(uint8_t* data){
|
||||
void flx68000LoadState(uint8_t* data){
|
||||
uint64_t offset = 0;
|
||||
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
CycloneUnpack(&cycloneCpu, data + offset);
|
||||
offset += 0x80;//specified in Cyclone.h, line 82
|
||||
#else
|
||||
@@ -263,7 +263,7 @@ void flx68000Execute(void){
|
||||
int32_t cpuCycles = sysclks * pctlrCpuClockDivider * palmClockMultiplier;
|
||||
|
||||
if(cpuCycles > 0){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
cycloneCpu.cycles = cpuCycles;
|
||||
CycloneRun(&cycloneCpu);
|
||||
#else
|
||||
@@ -279,7 +279,7 @@ void flx68000Execute(void){
|
||||
}
|
||||
|
||||
void flx68000SetIrq(uint8_t irqLevel){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
cycloneCpu.irq = irqLevel;
|
||||
CycloneFlushIrq(&cycloneCpu);
|
||||
#else
|
||||
@@ -288,7 +288,7 @@ void flx68000SetIrq(uint8_t irqLevel){
|
||||
}
|
||||
|
||||
void flx68000RefreshAddressing(void){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
//cycloneCpu.pc = cycloneCpu.checkpc(cycloneCpu.pc);
|
||||
#else
|
||||
//C implementation doesnt cache address information
|
||||
@@ -296,7 +296,7 @@ void flx68000RefreshAddressing(void){
|
||||
}
|
||||
|
||||
bool flx68000IsSupervisor(void){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
return CycloneGetSr(&cycloneCpu) & 0x2000;
|
||||
#else
|
||||
return !!(m68k_get_reg(NULL, M68K_REG_SR) & 0x2000);
|
||||
@@ -304,7 +304,7 @@ bool flx68000IsSupervisor(void){
|
||||
}
|
||||
|
||||
void flx68000BusError(uint32_t address, bool isWrite){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
//no bus error callback
|
||||
#else
|
||||
//never call outsize of a 68k opcode, behavior is undefined due to longjmp
|
||||
@@ -335,7 +335,7 @@ uint32_t flx68000GetRegister(uint8_t reg){
|
||||
M68K_REG_SR
|
||||
*/
|
||||
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
if(reg < 8)
|
||||
return cycloneCpu.d[reg];
|
||||
else if(reg < 16)
|
||||
@@ -352,7 +352,7 @@ uint32_t flx68000GetRegister(uint8_t reg){
|
||||
}
|
||||
|
||||
uint32_t flx68000GetPc(void){
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
return cycloneCpu.prev_pc;
|
||||
#else
|
||||
return m68k_get_reg(NULL, M68K_REG_PPC);
|
||||
@@ -362,7 +362,7 @@ uint32_t flx68000GetPc(void){
|
||||
uint64_t flx68000ReadArbitraryMemory(uint32_t address, uint8_t size){
|
||||
uint64_t data = UINT64_MAX;//invalid access
|
||||
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM)
|
||||
#if defined(EMU_OPTIMIZE_FOR_ARM32)
|
||||
//reading from a hardware register FIFO will corrupt it!
|
||||
if(bankType[START_BANK(address)] != CHIP_NONE){
|
||||
uint16_t m68kSr = CycloneGetSr(&cycloneCpu);
|
||||
|
||||
@@ -13,8 +13,8 @@ EMU_SOURCES_C := $(EMU_PATH)/emulator.c \
|
||||
$(EMU_PATH)/debug/sandbox.c
|
||||
|
||||
#only use with ARMv4<->7, ARMv8 is its own architecture
|
||||
ifeq ($(EMU_OPTIMIZE_FOR_ARM), 1)
|
||||
EMU_DEFINES += -DEMU_OPTIMIZE_FOR_ARM
|
||||
ifeq ($(EMU_OPTIMIZE_FOR_ARM32), 1)
|
||||
EMU_DEFINES += -DEMU_OPTIMIZE_FOR_ARM32
|
||||
ifeq ($(EMU_NEW_ASM_SYNTAX), 1)
|
||||
EMU_SOURCES_ASM += $(EMU_PATH)/m68k/cyclone/CycloneNew.S
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user