Skip to content

Commit

Permalink
Merge pull request dosemu2#2048 from bartoldeman/macos-changes5
Browse files Browse the repository at this point in the history
simx86: rename asmlinkage to ASMLINKAGE(x,y,z) and add asm("")
  • Loading branch information
stsp authored Jul 10, 2023
2 parents 595b673 + 8424ecf commit 43af18c
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 26 deletions.
6 changes: 2 additions & 4 deletions src/base/emu-i386/simx86/codegen-x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@
#include "mapping.h"
#ifdef HOST_ARCH_X86
#include "codegen-x86.h"
#include "cpatch.h"

static void Gen_x86(int op, int mode, ...);
static void AddrGen_x86(int op, int mode, ...);
Expand Down Expand Up @@ -3329,10 +3330,7 @@ asm(".text\n"
"do_seq_start:\n"
"push "R_REG(dx)"\n"
"jmp *"R_REG(ax)"\n");
#ifdef __cplusplus
extern "C"
#endif
void do_seq_start(void);
ASMLINKAGE(void,do_seq_start,(void));
static unsigned Exec_x86_asm(unsigned *mem_ref, unsigned long *flg,
unsigned char *ecpu, unsigned char *SeqStart)
{
Expand Down
18 changes: 9 additions & 9 deletions src/base/emu-i386/simx86/cpatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ struct rep_stack {
} __attribute__((packed));


asmlinkage void rep_movs_stos(struct rep_stack *stack)
void rep_movs_stos(struct rep_stack *stack)
{
unsigned char *paddr = stack->edi;
unsigned int ecx = stack->ecx;
Expand Down Expand Up @@ -217,7 +217,7 @@ asmlinkage void rep_movs_stos(struct rep_stack *stack)

/* ======================================================================= */

asmlinkage void stk_16(dosaddr_t addr, Bit16u value)
void stk_16(dosaddr_t addr, Bit16u value)
{
in_cpatch++;
assert(InCompiledCode);
Expand All @@ -228,7 +228,7 @@ asmlinkage void stk_16(dosaddr_t addr, Bit16u value)
in_cpatch--;
}

asmlinkage void stk_32(dosaddr_t addr, Bit32u value)
void stk_32(dosaddr_t addr, Bit32u value)
{
in_cpatch++;
assert(InCompiledCode);
Expand All @@ -239,7 +239,7 @@ asmlinkage void stk_32(dosaddr_t addr, Bit32u value)
in_cpatch--;
}

asmlinkage void wri_8(dosaddr_t addr, Bit8u value, unsigned char *eip)
void wri_8(dosaddr_t addr, Bit8u value, unsigned char *eip)
{
in_cpatch++;
assert(InCompiledCode);
Expand All @@ -255,7 +255,7 @@ asmlinkage void wri_8(dosaddr_t addr, Bit8u value, unsigned char *eip)
in_cpatch--;
}

asmlinkage void wri_16(dosaddr_t addr, Bit16u value, unsigned char *eip)
void wri_16(dosaddr_t addr, Bit16u value, unsigned char *eip)
{
in_cpatch++;
assert(InCompiledCode);
Expand All @@ -271,7 +271,7 @@ asmlinkage void wri_16(dosaddr_t addr, Bit16u value, unsigned char *eip)
in_cpatch--;
}

asmlinkage void wri_32(dosaddr_t addr, Bit32u value, unsigned char *eip)
void wri_32(dosaddr_t addr, Bit32u value, unsigned char *eip)
{
in_cpatch++;
assert(InCompiledCode);
Expand All @@ -287,17 +287,17 @@ asmlinkage void wri_32(dosaddr_t addr, Bit32u value, unsigned char *eip)
in_cpatch--;
}

asmlinkage Bit8u read_8(dosaddr_t addr)
Bit8u read_8(dosaddr_t addr)
{
return vga_read_access(addr) ? vga_read(addr) : READ_BYTE(addr);
}

asmlinkage Bit16u read_16(dosaddr_t addr)
Bit16u read_16(dosaddr_t addr)
{
return vga_read_access(addr) ? vga_read_word(addr) : READ_WORD(addr);
}

asmlinkage Bit32u read_32(dosaddr_t addr)
Bit32u read_32(dosaddr_t addr)
{
return vga_read_access(addr) ? vga_read_dword(addr) : READ_DWORD(addr);
}
Expand Down
22 changes: 11 additions & 11 deletions src/base/emu-i386/simx86/cpatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
#define EXTERN extern
#endif
#ifdef __i386__
#define asmlinkage EXTERN __attribute__((cdecl))
#define ASMLINKAGE(x,y,z) EXTERN __attribute__((cdecl)) x y z asm(#y)
#else
#define asmlinkage EXTERN
#define ASMLINKAGE(x,y,z) EXTERN x y z asm(#y)
#endif

struct rep_stack;

asmlinkage void rep_movs_stos(struct rep_stack *stack);
asmlinkage void stk_16(dosaddr_t addr, Bit16u value);
asmlinkage void stk_32(dosaddr_t addr, Bit32u value);
asmlinkage void wri_8(dosaddr_t addr, Bit8u value, unsigned char *eip);
asmlinkage void wri_16(dosaddr_t addr, Bit16u value, unsigned char *eip);
asmlinkage void wri_32(dosaddr_t addr, Bit32u value, unsigned char *eip);
asmlinkage Bit8u read_8(dosaddr_t addr);
asmlinkage Bit16u read_16(dosaddr_t addr);
asmlinkage Bit32u read_32(dosaddr_t addr);
ASMLINKAGE(void,rep_movs_stos,(struct rep_stack *stack));
ASMLINKAGE(void,stk_16,(dosaddr_t addr, Bit16u value));
ASMLINKAGE(void,stk_32,(dosaddr_t addr, Bit32u value));
ASMLINKAGE(void,wri_8,(dosaddr_t addr, Bit8u value, unsigned char *eip));
ASMLINKAGE(void,wri_16,(dosaddr_t addr, Bit16u value, unsigned char *eip));
ASMLINKAGE(void,wri_32,(dosaddr_t addr, Bit32u value, unsigned char *eip));
ASMLINKAGE(Bit8u,read_8,(dosaddr_t addr));
ASMLINKAGE(Bit16u,read_16,(dosaddr_t addr));
ASMLINKAGE(Bit32u,read_32,(dosaddr_t addr));
4 changes: 2 additions & 2 deletions src/base/lib/mcontext/asm.SS
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
#define GET _getmcontext
#elif defined(__x86_64__)
#define NEEDAMD64CONTEXT 1
#define SET _setmcontext
#define GET _getmcontext
#define SET __setmcontext
#define GET __getmcontext
#elif defined(__arm__)
#define NEEDARMCONTEXT 1
#define SET _setmcontext
Expand Down

0 comments on commit 43af18c

Please sign in to comment.