update from main archive 960910
[glibc.git] / sysdeps / i386 / asm-syntax.h
blob6e287764dca4253cbc500e74e3ff601422d4618e
1 /* asm.h -- Definitions for x86 syntax variations.
3 Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
5 This file is part of the GNU MP Library.
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.
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.
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., 675 Mass Ave, Cambridge, MA 02139, USA. */
21 #undef ALIGN
23 #ifdef GAS_SYNTAX
24 #define R(r) %r
25 #define MEM(base)(base)
26 #define MEM_DISP(base,displacement)displacement(R(base))
27 #define MEM_INDEX(base,index,size)(R(base),R(index),size)
28 #ifdef __STDC__
29 #define INSN1(mnemonic,size_suffix,dst)mnemonic##size_suffix dst
30 #define INSN2(mnemonic,size_suffix,dst,src)mnemonic##size_suffix src,dst
31 #else
32 #define INSN1(mnemonic,size_suffix,dst)mnemonic/**/size_suffix dst
33 #define INSN2(mnemonic,size_suffix,dst,src)mnemonic/**/size_suffix src,dst
34 #endif
35 #define TEXT .text
36 #define ALIGN(log) .align log
37 #define GLOBL .globl
38 #endif
40 #ifdef INTEL_SYNTAX
41 #define R(r) r
42 #define MEM(base)[base]
43 #define MEM_DISP(base,displacement)[base+(displacement)]
44 #define MEM_INDEX(base,index,size)[base+index*size]
45 #define INSN1(mnemonic,size_suffix,dst)mnemonic dst
46 #define INSN2(mnemonic,size_suffix,dst,src)mnemonic dst,src
47 #define TEXT .text
48 #define ALIGN(log) .align log
49 #define GLOBL .globl
50 #endif
52 #ifdef BROKEN_ALIGN
53 #undef ALIGN
54 #define ALIGN(log) .align log,0x90
55 #endif
57 #if !defined (NOLOG_ALIGN) && defined (HAVE_ELF)
58 #define NOLOG_ALIGN
59 #endif
61 #ifdef NOLOG_ALIGN
62 #undef ALIGN
63 #define ALIGN(log) .align 1<<log
64 #endif