From 9d985413ce2b60a1a8cf001913ee8dac81c03aac Mon Sep 17 00:00:00 2001 From: Ash Wolf Date: Fri, 13 Jan 2023 01:36:56 +0000 Subject: fix lots more issues, add endian conversions to ObjGenMachO, add 64-bit kludge to Switch.c --- includes/compiler/CompilerTools.h | 18 ++++++++++++++++++ includes/compiler/PCodeInfo.h | 1 + 2 files changed, 19 insertions(+) (limited to 'includes/compiler') diff --git a/includes/compiler/CompilerTools.h b/includes/compiler/CompilerTools.h index b218925..1338f29 100644 --- a/includes/compiler/CompilerTools.h +++ b/includes/compiler/CompilerTools.h @@ -3,6 +3,10 @@ #include "compiler/common.h" +#ifdef __LITTLE_ENDIAN__ +#define ENDIAN_CONVERSION +#endif + extern void CompilerGetPString(short index, unsigned char *string); extern void CompilerGetCString(short index, char *string); extern unsigned char *CTool_CtoPstr(char *cstr); @@ -49,6 +53,20 @@ struct GList { extern long hash_name_id; extern HashNameNode **name_hash_nodes; + +#ifdef __LP64__ +#define CW_64_BIT_SUPPORT +#endif + +// These don't exist in the original source, but are kind of necessary in the 2020s +#ifdef CW_64_BIT_SUPPORT +extern void *CTool_ResolveIndexToPointer(UInt32 index); +extern UInt32 CTool_CreateIndexFromPointer(void *ptr); +#else +#define CTool_ResolveIndexToPointer(index) ((void *) (index)) +#define CTool_CreateIndexFromPointer(ptr) ((UInt32) (ptr)) +#endif + extern void (*GListErrorProc)(void); extern short InitGList(GList *gl, SInt32 size); diff --git a/includes/compiler/PCodeInfo.h b/includes/compiler/PCodeInfo.h index 330a422..bc29b26 100644 --- a/includes/compiler/PCodeInfo.h +++ b/includes/compiler/PCodeInfo.h @@ -17,6 +17,7 @@ typedef enum { PCOp_PLACEHOLDEROPERAND } PCOpKind; +// unify me with RefType? typedef enum { PCOpMemory0 = 0, PCOpMemory1 = 1 -- cgit v1.2.3