From 37220202a6832b8ce08cef0189b3183ab46b6fa8 Mon Sep 17 00:00:00 2001 From: tsupplis Date: Tue, 17 Feb 2015 00:27:42 +0000 Subject: [PATCH] fix execution on ppc --- cpu/CpuModule_InternalState.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cpu/CpuModule_InternalState.c b/cpu/CpuModule_InternalState.c index db93bba..acbec52 100644 --- a/cpu/CpuModule_InternalState.c +++ b/cpu/CpuModule_InternalState.c @@ -246,20 +246,24 @@ void cpuSetModel(ULO major, ULO minor) if (makeOpcodeTable) cpuMakeOpcodeTableForModel(); } +#if defined(__BIG_ENDIAN__) +void cpuSetDRegWord(ULO regno, UWO val) {*((WOR*)&cpu_regs[0][regno]+1) = val;} +void cpuSetDRegByte(ULO regno, UBY val) {*((UBY*)&cpu_regs[0][regno]+3) = val;} +#else void cpuSetDRegWord(ULO regno, UWO val) {*((WOR*)&cpu_regs[0][regno]) = val;} void cpuSetDRegByte(ULO regno, UBY val) {*((UBY*)&cpu_regs[0][regno]) = val;} +#endif UWO cpuGetRegWord(ULO i, ULO regno) {return (UWO)cpu_regs[i][regno];} UWO cpuGetDRegWord(ULO regno) {return (UWO)cpu_regs[0][regno];} UBY cpuGetDRegByte(ULO regno) {return (UBY)cpu_regs[0][regno];} +UWO cpuGetARegWord(ULO regno) {return (UWO)cpu_regs[1][regno];} +UBY cpuGetARegByte(ULO regno) {return (UBY)cpu_regs[1][regno];} ULO cpuGetDRegWordSignExtLong(ULO regno) {return cpuSignExtWordToLong(cpuGetDRegWord(regno));} UWO cpuGetDRegByteSignExtWord(ULO regno) {return cpuSignExtByteToWord(cpuGetDRegByte(regno));} ULO cpuGetDRegByteSignExtLong(ULO regno) {return cpuSignExtByteToLong(cpuGetDRegByte(regno));} -UWO cpuGetARegWord(ULO regno) {return (UWO)cpu_regs[1][regno];} -UBY cpuGetARegByte(ULO regno) {return (UBY)cpu_regs[1][regno];} - typedef UWO (*cpuGetWordFunc)(void); typedef ULO (*cpuGetLongFunc)(void);