[BACK]Return to l0asm.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari / src / kernel / ix86

Annotation of OpenXM_contrib/pari/src/kernel/ix86/l0asm.h, Revision 1.1.1.1

1.1       maekawa     1: #ifdef _MSC_VER
                      2: #  define C(entrypoint) entrypoint
                      3: #  define L(label) L##label
                      4: #else
                      5: #  ifdef ASM_UNDERSCORE
                      6: #    if defined(__STDC__) || defined(__cplusplus)
                      7: #      define C(entrypoint) _##entrypoint
                      8: #      define L(label) L##label
                      9: #    else
                     10: #      define C(entrypoint) _/**/entrypoint
                     11: #      define L(label) L/**/label
                     12: #    endif
                     13: #  else
                     14: #    define C(entrypoint) entrypoint
                     15: #    if defined(__STDC__) || defined(__cplusplus)
                     16: #      define L(label) .L##label
                     17: #    else
                     18: #      define L(label) .L/**/label
                     19: #    endif
                     20: #  endif
                     21: #endif
                     22:
                     23: #ifdef _MSC_VER
                     24: #  define INTEL_SYNTAX
                     25: #else
                     26: #  ifdef ASM_UNDERSCORE
                     27: #    define BSD_SYNTAX
                     28: #  else
                     29: #    define ELF_SYNTAX
                     30: #  endif
                     31: #endif
                     32:
                     33: #if defined (BSD_SYNTAX) || defined (ELF_SYNTAX)
                     34: #  define R(r) %r
                     35: #  define NUM(n) $##n
                     36: #  define ADDR(a) $##a
                     37: #  define X1
                     38: #  define X2
                     39: #  define X4
                     40: #  define X8
                     41: #  define MEM(base)(R(base))
                     42: #  define MEM_DISP(base,displacement)displacement(R(base))
                     43: #  define MEM_INDEX(base,index)(R(base),R(index))
                     44: #  define MEM_SHINDEX(base,index,size)(R(base),R(index),size)
                     45: #  define MEM_DISP_SHINDEX0(displacement,index,size)displacement(,R(index),size)
                     46: #  define MEM_DISP_SHINDEX(base,displacement,index,size)displacement(R(base),R(index),size)
                     47: #  define INDIR(value)*value
                     48: #  define INSNCONC(mnemonic,size_suffix)mnemonic##size_suffix
                     49: #  define INSN1(mnemonic,size_suffix,dst)INSNCONC(mnemonic,size_suffix) dst
                     50: #  define INSN2(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) src,dst
                     51: #  define INSN2MOVX(mnemonic,size_suffix,src,dst)INSNCONC(INSNCONC(mnemonic,size_suffix),l) src,dst
                     52: #  if defined(BSD_SYNTAX) || defined(COHERENT)
                     53: #    define INSN2SHCL(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) R(cl),src,dst
                     54: #    define REPZ repe ;
                     55: #  else
                     56: #    define INSN2SHCL(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) src,dst
                     57: #    define REPZ repz ;
                     58: #  endif
                     59: #  define REP rep ;
                     60: #  if defined(BSD_SYNTAX) && !(defined(__CYGWIN32__) || defined(__MINGW32__))
                     61: #    define ALIGN(log) .align log,0x90
                     62: #  endif
                     63: #  if defined(ELF_SYNTAX) || defined(__CYGWIN32__) || defined(__MINGW32__)
                     64: #    define ALIGN(log) .align 1<<(log)
                     65: #  endif
                     66: #endif
                     67:
                     68: #ifdef INTEL_SYNTAX
                     69: #  define R(r) r
                     70: #  define NUM(n) n
                     71: #  define ADDR(a) OFFSET a
                     72: #  define X1 BYTE PTR
                     73: #  define X2 WORD PTR
                     74: #  define X4 DWORD PTR
                     75: #  define X8 QWORD PTR
                     76: #  define MEM(base) [base]
                     77: #  define MEM_DISP(base,displacement) [base+(displacement)]
                     78: #  define MEM_INDEX(base,index) [base+index]
                     79: #  define MEM_SHINDEX(base,index,size) [base+index*size]
                     80: #  define MEM_DISP_SHINDEX0(displacement,index,size) [(displacement)+index*size]
                     81: #  define MEM_DISP_SHINDEX(base,displacement,index,size) [base+(displacement)+index*size]
                     82: #  define INDIR(value)value
                     83: #  define INSNCONC(mnemonic,suffix)mnemonic##suffix
                     84: #  define INSN1(mnemonic,size_suffix,dst)mnemonic dst
                     85: #  define INSN2(mnemonic,size_suffix,src,dst)mnemonic dst,src
                     86: #  define INSN2MOVX(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,x) dst,src
                     87: #  define INSN2SHCL(mnemonic,size_suffix,src,dst)mnemonic dst,src,R(cl)
                     88: #  define REPZ repz
                     89: #  define REP rep
                     90: #  define movsl  movs R(eax)
                     91: #  define stosl  stos R(eax)
                     92: #  define scasl  scas R(eax)
                     93: #  define cmpsl  cmpsd
                     94: #  ifdef _MSC_VER
                     95: #    define ALIGN(log)
                     96: #  else
                     97: #    define ALIGN(log) .align log
                     98: #  endif
                     99: #endif
                    100:
                    101: #ifdef _MSC_VER
                    102: #  define TEXT()
                    103: #  define GLOBL(name)
                    104: #  define FUNBEGIN(name) __declspec(naked) void name () { __asm {
                    105: #  define FUNEND()                                      }       }
                    106: #else
                    107: #  define TEXT() .text
                    108: #  define GLOBL(name) .globl name
                    109: #  define FUNBEGIN(name) C(name##:)
                    110: #  define FUNEND()
                    111: #endif
                    112:
                    113: #define _
                    114:
                    115: TEXT()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>