Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / libgmp / mpn / x86 / syntax.h
1 /* asm.h -- Definitions for x86 syntax variations.
2
3 Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
4
5 This file is part of the GNU MP Library.
6
7 The GNU MP Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Library General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or (at your
10 option) any later version.
11
12 The GNU MP Library is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
15 License for more details.
16
17 You should have received a copy of the GNU Library General Public License
18 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20 MA 02111-1307, USA.  */
21
22
23 #undef ALIGN
24
25 #if defined (BSD_SYNTAX) || defined (ELF_SYNTAX)
26 #define R(r) %r
27 #define MEM(base)(base)
28 #define MEM_DISP(base,displacement)displacement(R(base))
29 #define MEM_INDEX(base,index,size)(R(base),R(index),size)
30 #ifdef __STDC__
31 #define INSN1(mnemonic,size_suffix,dst)mnemonic##size_suffix dst
32 #define INSN2(mnemonic,size_suffix,dst,src)mnemonic##size_suffix src,dst
33 #else
34 #define INSN1(mnemonic,size_suffix,dst)mnemonic/**/size_suffix dst
35 #define INSN2(mnemonic,size_suffix,dst,src)mnemonic/**/size_suffix src,dst
36 #endif
37 #define TEXT .text
38 #if defined (BSD_SYNTAX)
39 #define ALIGN(log) .align log
40 #endif
41 #if defined (ELF_SYNTAX)
42 #define ALIGN(log) .align 1<<(log)
43 #endif
44 #define GLOBL .globl
45 #endif
46
47 #ifdef INTEL_SYNTAX
48 #define R(r) r
49 #define MEM(base)[base]
50 #define MEM_DISP(base,displacement)[base+(displacement)]
51 #define MEM_INDEX(base,index,size)[base+index*size]
52 #define INSN1(mnemonic,size_suffix,dst)mnemonic dst
53 #define INSN2(mnemonic,size_suffix,dst,src)mnemonic dst,src
54 #define TEXT .text
55 #define ALIGN(log) .align log
56 #define GLOBL .globl
57 #endif
58
59 #ifdef BROKEN_ALIGN
60 #undef ALIGN
61 #define ALIGN(log) .align log,0x90
62 #endif