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

Annotation of OpenXM_contrib/pari-2.2/src/kernel/ix86/l0asm.h, Revision 1.1

1.1     ! noro        1: /* $Id: l0asm.h,v 1.2 2000/11/03 21:00:25 karim Exp $
        !             2:
        !             3: Copyright (C) 2000  The PARI group.
        !             4:
        !             5: This file is part of the PARI/GP package.
        !             6:
        !             7: PARI/GP is free software; you can redistribute it and/or modify it under the
        !             8: terms of the GNU General Public License as published by the Free Software
        !             9: Foundation. It is distributed in the hope that it will be useful, but WITHOUT
        !            10: ANY WARRANTY WHATSOEVER.
        !            11:
        !            12: Check the License for details. You should have received a copy of it, along
        !            13: with the package; see the file 'COPYING'. If not, write to the Free Software
        !            14: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
        !            15:
        !            16: #ifdef _MSC_VER
        !            17: #  define C(entrypoint) entrypoint
        !            18: #  define L(label) L##label
        !            19: #else
        !            20: #  ifdef ASM_UNDERSCORE
        !            21: #    if defined(__STDC__) || defined(__cplusplus)
        !            22: #      define C(entrypoint) _##entrypoint
        !            23: #      define L(label) L##label
        !            24: #    else
        !            25: #      define C(entrypoint) _/**/entrypoint
        !            26: #      define L(label) L/**/label
        !            27: #    endif
        !            28: #  else
        !            29: #    define C(entrypoint) entrypoint
        !            30: #    if defined(__STDC__) || defined(__cplusplus)
        !            31: #      define L(label) .L##label
        !            32: #    else
        !            33: #      define L(label) .L/**/label
        !            34: #    endif
        !            35: #  endif
        !            36: #endif
        !            37:
        !            38: #ifdef _MSC_VER
        !            39: #  define INTEL_SYNTAX
        !            40: #else
        !            41: #  ifdef ASM_UNDERSCORE
        !            42: #    define BSD_SYNTAX
        !            43: #  else
        !            44: #    define ELF_SYNTAX
        !            45: #  endif
        !            46: #endif
        !            47:
        !            48: #if defined (BSD_SYNTAX) || defined (ELF_SYNTAX)
        !            49: #  define R(r) %r
        !            50: #  define NUM(n) $##n
        !            51: #  define ADDR(a) $##a
        !            52: #  define X1
        !            53: #  define X2
        !            54: #  define X4
        !            55: #  define X8
        !            56: #  define MEM(base)(R(base))
        !            57: #  define MEM_DISP(base,displacement)displacement(R(base))
        !            58: #  define MEM_INDEX(base,index)(R(base),R(index))
        !            59: #  define MEM_SHINDEX(base,index,size)(R(base),R(index),size)
        !            60: #  define MEM_DISP_SHINDEX0(displacement,index,size)displacement(,R(index),size)
        !            61: #  define MEM_DISP_SHINDEX(base,displacement,index,size)displacement(R(base),R(index),size)
        !            62: #  define INDIR(value)*value
        !            63: #  define INSNCONC(mnemonic,size_suffix)mnemonic##size_suffix
        !            64: #  define INSN1(mnemonic,size_suffix,dst)INSNCONC(mnemonic,size_suffix) dst
        !            65: #  define INSN2(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) src,dst
        !            66: #  define INSN2MOVX(mnemonic,size_suffix,src,dst)INSNCONC(INSNCONC(mnemonic,size_suffix),l) src,dst
        !            67: #  if defined(BSD_SYNTAX) || defined(COHERENT)
        !            68: #    define INSN2SHCL(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) R(cl),src,dst
        !            69: #    define REPZ repe ;
        !            70: #  else
        !            71: #    define INSN2SHCL(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) src,dst
        !            72: #    define REPZ repz ;
        !            73: #  endif
        !            74: #  define REP rep ;
        !            75: #  if defined(BSD_SYNTAX) && !(defined(__CYGWIN32__) || defined(__MINGW32__))
        !            76: #    define ALIGN(log) .align log,0x90
        !            77: #  endif
        !            78: #  if defined(ELF_SYNTAX) || defined(__CYGWIN32__) || defined(__MINGW32__)
        !            79: #    define ALIGN(log) .align 1<<(log)
        !            80: #  endif
        !            81: #endif
        !            82:
        !            83: #ifdef INTEL_SYNTAX
        !            84: #  define R(r) r
        !            85: #  define NUM(n) n
        !            86: #  define ADDR(a) OFFSET a
        !            87: #  define X1 BYTE PTR
        !            88: #  define X2 WORD PTR
        !            89: #  define X4 DWORD PTR
        !            90: #  define X8 QWORD PTR
        !            91: #  define MEM(base) [base]
        !            92: #  define MEM_DISP(base,displacement) [base+(displacement)]
        !            93: #  define MEM_INDEX(base,index) [base+index]
        !            94: #  define MEM_SHINDEX(base,index,size) [base+index*size]
        !            95: #  define MEM_DISP_SHINDEX0(displacement,index,size) [(displacement)+index*size]
        !            96: #  define MEM_DISP_SHINDEX(base,displacement,index,size) [base+(displacement)+index*size]
        !            97: #  define INDIR(value)value
        !            98: #  define INSNCONC(mnemonic,suffix)mnemonic##suffix
        !            99: #  define INSN1(mnemonic,size_suffix,dst)mnemonic dst
        !           100: #  define INSN2(mnemonic,size_suffix,src,dst)mnemonic dst,src
        !           101: #  define INSN2MOVX(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,x) dst,src
        !           102: #  define INSN2SHCL(mnemonic,size_suffix,src,dst)mnemonic dst,src,R(cl)
        !           103: #  define REPZ repz
        !           104: #  define REP rep
        !           105: #  define movsl  movs R(eax)
        !           106: #  define stosl  stos R(eax)
        !           107: #  define scasl  scas R(eax)
        !           108: #  define cmpsl  cmpsd
        !           109: #  ifdef _MSC_VER
        !           110: #    define ALIGN(log)
        !           111: #  else
        !           112: #    define ALIGN(log) .align log
        !           113: #  endif
        !           114: #endif
        !           115:
        !           116: #ifdef _MSC_VER
        !           117: #  define TEXT()
        !           118: #  define GLOBL(name)
        !           119: #  define FUNBEGIN(name) __declspec(naked) void name () { __asm {
        !           120: #  define FUNEND()                                      }       }
        !           121: #else
        !           122: #  define TEXT() .text
        !           123: #  define GLOBL(name) .globl name
        !           124: #  define FUNBEGIN(name) C(name##:)
        !           125: #  define FUNEND()
        !           126: #endif
        !           127:
        !           128: #define _
        !           129:
        !           130: TEXT()

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