|
@@ -0,0 +1,123 @@
|
|
|
+diff --git a/H/globals.h b/H/globals.h
|
|
|
+index 223d015..953ff41 100644
|
|
|
+--- a/H/globals.h
|
|
|
++++ b/H/globals.h
|
|
|
+@@ -49,6 +49,7 @@
|
|
|
+ #endif
|
|
|
+ #define _ltoa ltoa
|
|
|
+ #define _strupr strupr
|
|
|
++extern char *strupr(char *);
|
|
|
+
|
|
|
+ #elif defined(__POCC__)
|
|
|
+
|
|
|
+@@ -946,4 +947,11 @@ extern char *num2hex64(uint_64 value, char *buffer);
|
|
|
+ extern char *ConvertSectionName( const struct asym *, enum seg_type *pst, char *buffer );
|
|
|
+ extern void RewindToWin64(void);
|
|
|
+
|
|
|
++extern void CreateMacroLibCases64(void);
|
|
|
++extern void CreateMacroLibCases32(void);
|
|
|
++extern void OutputInterleavedBytes(const unsigned char *pbytes, int len, struct fixup *fixup);
|
|
|
++extern void SymSimd(struct dsym *sym);
|
|
|
++extern void RunLineQueue( void );
|
|
|
++extern ret_code BackPatch( struct asym *sym );
|
|
|
++
|
|
|
+ #endif
|
|
|
+diff --git a/assemble.c b/assemble.c
|
|
|
+index 2ce0e14..a9f2899 100644
|
|
|
+--- a/assemble.c
|
|
|
++++ b/assemble.c
|
|
|
+@@ -43,7 +43,7 @@
|
|
|
+ #include "lqueue.h"
|
|
|
+ #include "orgfixup.h"
|
|
|
+ #include "macrolib.h"
|
|
|
+-//#include "simd.h"
|
|
|
++#include "simd.h"
|
|
|
+
|
|
|
+ #if DLLIMPORT
|
|
|
+ #include "mangle.h"
|
|
|
+diff --git a/codegenv2.c b/codegenv2.c
|
|
|
+index 6bcc08d..7063c27 100644
|
|
|
+--- a/codegenv2.c
|
|
|
++++ b/codegenv2.c
|
|
|
+@@ -1,6 +1,7 @@
|
|
|
+
|
|
|
+ #include "codegenv2.h"
|
|
|
+
|
|
|
++#include <ctype.h>
|
|
|
+ #include <time.h>
|
|
|
+ #include "globals.h"
|
|
|
+ #include "parser.h"
|
|
|
+@@ -12,6 +13,7 @@
|
|
|
+ #include "types.h"
|
|
|
+ #include "macro.h"
|
|
|
+ #include "listing.h"
|
|
|
++#include "input.h"
|
|
|
+
|
|
|
+ #define OutputCodeByte( x ) OutputByte( x )
|
|
|
+
|
|
|
+diff --git a/macho64.c b/macho64.c
|
|
|
+index 8e74842..8b81d5e 100644
|
|
|
+--- a/macho64.c
|
|
|
++++ b/macho64.c
|
|
|
+@@ -725,7 +725,7 @@ static ret_code macho_write_module( struct module_info *modinfo )
|
|
|
+ mm.header.cputype = CPU_TYPE_X86_64;
|
|
|
+ mm.header.cpusubtype = CPU_SUBTYPE_LITTLE_ENDIAN | CPU_SUBTYPE_X86_64_ALL;
|
|
|
+ mm.header.filetype = MH_OBJECT;
|
|
|
+- mm.header.flags = NULL;
|
|
|
++ mm.header.flags = 0;
|
|
|
+
|
|
|
+ macho_build_structures(modinfo, mm);
|
|
|
+ }
|
|
|
+diff --git a/proc.c b/proc.c
|
|
|
+index a984bb9..16307b3 100644
|
|
|
+--- a/proc.c
|
|
|
++++ b/proc.c
|
|
|
+@@ -162,10 +162,12 @@ struct delphicall_conv {
|
|
|
+
|
|
|
+
|
|
|
+ static int ms32_pcheck(struct dsym *, struct dsym *, int *);
|
|
|
++static int ms32_syspcheck(struct dsym *, struct dsym *, int *, int *);
|
|
|
+ static void ms32_return(struct dsym *, char *);
|
|
|
+
|
|
|
+ #if OWFC_SUPPORT
|
|
|
+ static int watc_pcheck(struct dsym *, struct dsym *, int *);
|
|
|
++static int watc_syspcheck(struct dsym *, struct dsym *, int *, int *);
|
|
|
+ static void watc_return(struct dsym *, char *);
|
|
|
+ #endif
|
|
|
+
|
|
|
+@@ -212,9 +214,9 @@ static const struct vectorcall_conv vectorcall_tab[] = {
|
|
|
+ };
|
|
|
+
|
|
|
+ static const struct sysvcall_conv sysvcall_tab[] = {
|
|
|
+- { ms32_pcheck, ms32_return }, /* FCT_MSC */
|
|
|
++ { ms32_syspcheck, ms32_return }, /* FCT_MSC */
|
|
|
+ #if OWFC_SUPPORT
|
|
|
+- { watc_pcheck, watc_return }, /* FCT_WATCOMC */
|
|
|
++ { watc_syspcheck, watc_return }, /* FCT_WATCOMC */
|
|
|
+ #endif
|
|
|
+ #if SYSV_SUPPORT
|
|
|
+ { sysv_pcheck, sysv_return } /* FCT_WIN64 / SYSTEMV */
|
|
|
+@@ -380,6 +382,11 @@ static int watc_pcheck(struct dsym *proc, struct dsym *paranode, int *used)
|
|
|
+ return(1);
|
|
|
+ }
|
|
|
+
|
|
|
++static int watc_syspcheck(struct dsym *proc, struct dsym *paranode, int *used, int *vecused)
|
|
|
++{
|
|
|
++ return watc_pcheck(proc, paranode, used);
|
|
|
++}
|
|
|
++
|
|
|
+ static void watc_return(struct dsym *proc, char *buffer)
|
|
|
+ /********************************************************/
|
|
|
+ {
|
|
|
+@@ -433,6 +440,11 @@ static int ms32_pcheck(struct dsym *proc, struct dsym *paranode, int *used)
|
|
|
+ return(1);
|
|
|
+ }
|
|
|
+
|
|
|
++static int ms32_syspcheck(struct dsym *proc, struct dsym *paranode, int *used, int *vecused)
|
|
|
++{
|
|
|
++ return ms32_pcheck(proc, paranode, used);
|
|
|
++}
|
|
|
++
|
|
|
+ static void ms32_return(struct dsym *proc, char *buffer)
|
|
|
+ /********************************************************/
|
|
|
+ {
|