c - Compatibility of inline assembly - \n\t versus ; -


what correct way write inline assembly (except avoid it)? better use ; or \n\t?

(except microsoft compiler __asm)

there not "correct" way multi-line assembly vs inline. whatever readable.

exemple : gmp use differents asm code style same bswap function

/* bswap available on i486 , , fast.  combination rorw $8 /    roll $16 / rorw $8 used in glibc plain i386 (and in linux    kernel xchgb instead of rorw), not done here, because    i386 means generic x86 , mixing word , dword operations cause    partial register stalls on p6 chips.  */ #if defined (__gnuc__) && ! defined (no_asm)            \   && have_host_cpu_family_x86 && ! have_host_cpu_i386   \   && gmp_limb_bits == 32 #define bswap_limb(dst, src)                        \   {                                  \     __asm__ ("bswap %0" : "=r" (dst) : "0" (src));          \   } while (0) #endif  #if defined (__gnuc__) && ! defined (no_asm)            \   && defined (__amd64__) && gmp_limb_bits == 64 #define bswap_limb(dst, src)                        \   {                                  \     __asm__ ("bswap %q0" : "=r" (dst) : "0" (src));         \   } while (0) #endif  #if defined (__gnuc__) && ! defined (__intel_compiler)          \     && ! defined (no_asm) && defined (__ia64) && gmp_limb_bits == 64 #define bswap_limb(dst, src)                        \   {                                  \     __asm__ ("mux1 %0 = %1, @rev" : "=r" (dst) :  "r" (src));       \   } while (0) #endif  /* per glibc. */ #if defined (__gnuc__) && ! defined (no_asm)                    \   && have_host_cpu_family_m68k && gmp_limb_bits == 32 #define bswap_limb(dst, src)                        \   {                                  \     mp_limb_t  __bswapl_src = (src);                    \     __asm__ ("ror%.w %#8, %0\n\t"                   \          "swap   %0\n\t"                        \          "ror%.w %#8, %0"                       \          : "=d" (dst)                       \          : "0" (__bswapl_src));                 \   } while (0) #endif 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -