--- 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 16:50:53 1.1.1.3 @@ -10,7 +10,7 @@ static __inline__ uae_u32 do_get_mem_lon { uae_u32 retval; - __asm__ ("bswapl %0" : "=r" (retval) : "0" (*a) : "cc"); + __asm__ ("bswap %0" : "=r" (retval) : "0" (*a) : "cc"); return retval; } @@ -19,30 +19,27 @@ static __inline__ uae_u32 do_get_mem_wor 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) { - __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) { #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; } @@ -53,14 +50,14 @@ static __inline__ void do_put_mem_word ( 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) { - __asm__("call *%2" + __asm__("call %2" : : "a" (addr), "d" (v), "r" (func) : "cc", "eax", "edx", "ecx", "memory"); } #else @@ -84,7 +81,7 @@ 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; @@ -125,7 +122,7 @@ static __inline__ void longput_1 (uae_cp "\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");