--- uae/src/md-i386-gcc/maccess.h 2018/04/24 16:42:54 1.1.1.1 +++ uae/src/md-i386-gcc/maccess.h 2018/04/24 17:15:23 1.1.1.5 @@ -1,48 +1,45 @@ - /* + /* * UAE - The Un*x Amiga Emulator - * + * * Memory access functions * * Copyright 1996 Bernd Schmidt */ -static __inline__ uae_u32 do_get_mem_long (uae_u32 *a) +STATIC_INLINE uae_u32 do_get_mem_long (uae_u32 *a) { uae_u32 retval; - __asm__ ("bswapl %0" : "=r" (retval) : "0" (*a) : "cc"); + __asm__ ("bswap %0" : "=r" (retval) : "0" (*a) : "cc"); return retval; } -static __inline__ uae_u32 do_get_mem_word (uae_u16 *a) +STATIC_INLINE uae_u32 do_get_mem_word (uae_u16 *a) { uae_u32 retval; #ifdef X86_PPRO_OPT - __asm__ ("movzwl %w1,%k0\n\tshll $16,%k0\n\tbswapl %k0\n" : "=&r" (retval) : "m" (*a) : "cc"); + __asm__ ("movzwl %w1,%k0\n\tshll $16,%k0\n\tbswap %k0\n" : "=&r" (retval) : "m" (*a) : "cc"); #else __asm__ ("xorl %k0,%k0\n\tmovw %w1,%w0\n\trolw $8,%w0" : "=&r" (retval) : "m" (*a) : "cc"); #endif return retval; } -#define HAVE_GET_WORD_UNSWAPPED - -#define do_get_mem_word_unswapped(a) ((uae_u32)*((uae_u16 *)a)) #define do_get_mem_byte(a) ((uae_u32)*((uae_u8 *)a)) -static __inline__ void do_put_mem_long (uae_u32 *a, uae_u32 v) +STATIC_INLINE void do_put_mem_long (uae_u32 *a, uae_u32 v) { - __asm__ ("bswapl %0" : "=r" (v) : "0" (v) : "cc"); + __asm__ ("bswap %0" : "=r" (v) : "0" (v) : "cc"); *a = v; } -static __inline__ void do_put_mem_word (uae_u16 *a, uae_u32 v) +STATIC_INLINE void do_put_mem_word (uae_u16 *a, uae_u32 v) { #ifdef X86_PPRO_OPT - __asm__ ("bswapl %0" : "=&r" (v) : "0" (v << 16) : "cc"); + __asm__ ("bswap %0" : "=&r" (v) : "0" (v << 16) : "cc"); #else - __asm__ ("rolw $8,%0" : "=r" (v) : "0" (v) : "cc"); + __asm__ ("rolw $8,%w0" : "=r" (v) : "0" (v) : "cc"); #endif *a = v; } @@ -50,17 +47,17 @@ static __inline__ void do_put_mem_word ( #define do_put_mem_byte(a,v) (*(uae_u8 *)(a) = (v)) #if 0 -static __inline__ uae_u32 call_mem_get_func(mem_get_func func, uae_cptr addr) +STATIC_INLINE uae_u32 call_mem_get_func(mem_get_func func, uae_cptr addr) { uae_u32 result; - __asm__("call *%1" + __asm__("call %1" : "=a" (result) : "r" (func), "a" (addr) : "cc", "edx", "ecx"); return result; } -static __inline__ void call_mem_put_func(mem_put_func func, uae_cptr addr, uae_u32 v) +STATIC_INLINE void call_mem_put_func(mem_put_func func, uae_cptr addr, uae_u32 v) { - __asm__("call *%2" + __asm__("call %2" : : "a" (addr), "d" (v), "r" (func) : "cc", "eax", "edx", "ecx", "memory"); } #else @@ -74,7 +71,7 @@ static __inline__ void call_mem_put_func #undef MD_HAVE_MEM_1_FUNCS #ifdef MD_HAVE_MEM_1_FUNCS -static __inline__ uae_u32 longget_1 (uae_cptr addr) +STATIC_INLINE uae_u32 longget_1 (uae_cptr addr) { uae_u32 result; @@ -84,12 +81,12 @@ static __inline__ uae_u32 longget_1 (uae "\tje longget_stub\n" "\taddl address_space,%1\n" "\tmovl (%1),%0\n" - "\tbswapl %0\n" + "\tbswap %0\n" "\t1:" : "=c" (result), "=d" (addr) : "1" (addr), "r" (good_address_map) : "cc"); return result; } -static __inline__ uae_u32 wordget_1 (uae_cptr addr) +STATIC_INLINE uae_u32 wordget_1 (uae_cptr addr) { uae_u32 result; @@ -104,7 +101,7 @@ static __inline__ uae_u32 wordget_1 (uae : "=c" (result), "=d" (addr) : "1" (addr), "r" (good_address_map) : "cc"); return result; } -static __inline__ uae_u32 byteget_1 (uae_cptr addr) +STATIC_INLINE uae_u32 byteget_1 (uae_cptr addr) { uae_u32 result; @@ -118,19 +115,19 @@ static __inline__ uae_u32 byteget_1 (uae : "=c" (result), "=d" (addr) : "1" (addr), "r" (good_address_map) : "cc"); return result; } -static __inline__ void longput_1 (uae_cptr addr, uae_u32 l) +STATIC_INLINE void longput_1 (uae_cptr addr, uae_u32 l) { __asm__ __volatile__("andl $0x00FFFFFF,%0\n" "\tcmpb $0,(%0,%3)\n" "\tleal 1f,%%ecx\n" "\tje longput_stub\n" "\taddl address_space,%0\n" - "\tbswapl %1\n" + "\tbswap %1\n" "\tmovl %1,(%0)\n" "\t1:" : "=d" (addr), "=b" (l) : "0" (addr), "r" (good_address_map), "1" (l) : "cc", "memory", "ecx"); } -static __inline__ void wordput_1 (uae_cptr addr, uae_u32 w) +STATIC_INLINE void wordput_1 (uae_cptr addr, uae_u32 w) { __asm__ __volatile__("andl $0x00FFFFFF,%0\n" "\tcmpb $0,(%0,%3)\n" @@ -142,7 +139,7 @@ static __inline__ void wordput_1 (uae_cp "\t1:" : "=d" (addr), "=b" (w) : "0" (addr), "r" (good_address_map), "1" (w) : "cc", "memory", "ecx"); } -static __inline__ void byteput_1 (uae_cptr addr, uae_u32 b) +STATIC_INLINE void byteput_1 (uae_cptr addr, uae_u32 b) { __asm__ __volatile__("andl $0x00FFFFFF,%0\n" "\tcmpb $0,(%0,%3)\n" @@ -165,7 +162,7 @@ typedef struct { unsigned char a, b, c; } __attribute__ ((packed)) uae_u24; -static __inline__ uae_u24 uae24_convert (uae_u32 v) +STATIC_INLINE uae_u24 uae24_convert (uae_u32 v) { return *(uae_u24 *)&v; }