]> Shamusworld >> Repos - rmac/blobdiff - rmac.h
.equr overhaul part 5: enabled .equr for all registers for all architectures
[rmac] / rmac.h
diff --git a/rmac.h b/rmac.h
index 6ce90c09e38fb94bb9418d0ea1aad74db9122a2a..2ca16c283956389d5c4d8410f8bfef85b47f0168 100644 (file)
--- a/rmac.h
+++ b/rmac.h
@@ -39,7 +39,6 @@
        #define STRINGIZE(x) STRINGIZE_HELPER(x)
        #define WARNING(desc) __pragma(message(__FILE__ "(" STRINGIZE(__LINE__) ") : Warning: " #desc))
        #define inline __inline
-
        // usage:
        // WARNING(FIXME: Code removed because...)
 
 #include <dirent.h>
 #include "symbol.h"
 
+#if defined(WIN32) || defined(WIN64)
+// Ever since Visual Studio... 2017? 2019? the following constants come defined in the
+// platform SDK, which leads to endless warnings from the compiler. So let's just
+// put the pacifier on and undef them, sheesh! (No, we won't rename the defines,
+// we've been here since 1986, Visual Studio wasn't even a glimpse in the milkman's eyes,
+// if you catch my drift)
+#undef CONST
+#undef ERROR
+#undef TEXT
+#endif
+
 #define BYTE         uint8_t
 #define WORD         uint16_t
 #define LONG         uint32_t
@@ -249,10 +259,6 @@ PTR
 #define SIZP         0x0080            // .p (FPU pakced decimal real)
 #define SIZQ         0x0100            // .q (quad word)
 
-// RISC register bank definitions (used in extended symbol attributes also)
-#define BANK_N       0x0000            // No register bank specified
-#define BANK_0       0x0001            // Register bank zero specified
-#define BANK_1       0x0002            // Register bank one specified
 #define EQUATEDREG   0x0008            // Equated register symbol
 #define UNDEF_EQUR   0x0010
 #define EQUATEDCC    0x0020
@@ -284,6 +290,7 @@ PTR
 // Optimisation defines
 enum
 {
+    // These will be set to on/off when .opt "+Oall"/"~Oall" is called
        OPT_ABS_SHORT     = 0,
        OPT_MOVEL_MOVEQ   = 1,
        OPT_BSR_BCC_S     = 2,
@@ -294,8 +301,12 @@ enum
        OPT_CLR_DX        = 7,
        OPT_ADDA_ADDQ     = 8,
        OPT_ADDA_LEA      = 9,
-       OPT_PC_RELATIVE   = 10,         // Enforce PC relative
-       OPT_COUNT   // Dummy, used to count number of optimisation switches
+       OPT_56K_SHORT     = 10,
+       OPT_56K_AUTO_LONG = 11,
+       OPT_COUNT,                  // Dummy, used to count number of optimisation switches
+    // These will be unaffected by "Oall"
+       OPT_PC_RELATIVE   = 30,         // Enforce PC relative
+    OPT_COUNT_ALL               // Dummy, used to count all switches
 };
 
 // Exported variables
@@ -306,11 +317,9 @@ extern int robjproc;
 extern int dsp56001;
 extern int err_flag;
 extern int err_fd;
-extern int regbank;
 extern char * firstfname;
 extern int list_fd;
 extern int list_pag;
-extern int as68_flag;
 extern int m6502;
 extern int list_flag;
 extern int glob_flag;
@@ -320,7 +329,7 @@ extern int obj_format;
 extern int legacy_flag;
 extern int prg_flag;   // 1 = write ".PRG" relocatable executable
 extern LONG PRGFLAGS;
-extern int optim_flags[OPT_COUNT];
+extern int optim_flags[OPT_COUNT_ALL];
 extern int activecpu;
 extern int activefpu;
 extern uint32_t org68k_address;