Annotation of OpenXM/src/kan96xx/gmp-2.0.2-ssh-2/mpn/m68k/syntax.h, Revision 1.1.1.1
1.1 takayama 1: /* asm.h -- Definitions for 68k syntax variations.
2:
3: Copyright (C) 1992, 1994, 1996 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: #undef ALIGN
23:
24: #ifdef MIT_SYNTAX
25: #define PROLOG(name)
26: #define EPILOG(name)
27: #define R(r)r
28: #define MEM(base)base@
29: #define MEM_DISP(base,displacement)base@(displacement)
30: #define MEM_INDX(base,idx,size_suffix)base@(idx:size_suffix)
31: #define MEM_INDX1(base,idx,size_suffix,scale)base@(idx:size_suffix:scale)
32: #define MEM_PREDEC(memory_base)memory_base@-
33: #define MEM_POSTINC(memory_base)memory_base@+
34: #define L(label) label
35: #define TEXT .text
36: #define ALIGN .even
37: #define GLOBL .globl
38: #define moveql moveq
39: /* Use variable sized opcodes. */
40: #define bcc jcc
41: #define bcs jcs
42: #define bls jls
43: #define beq jeq
44: #define bne jne
45: #define bra jra
46: #endif
47:
48: #ifdef SONY_SYNTAX
49: #define PROLOG(name)
50: #define EPILOG(name)
51: #define R(r)r
52: #define MEM(base)(base)
53: #define MEM_DISP(base,displacement)(displacement,base)
54: #define MEM_INDX(base,idx,size_suffix)(base,idx.size_suffix)
55: #define MEM_INDX1(base,idx,size_suffix,scale)(base,idx.size_suffix*scale)
56: #define MEM_PREDEC(memory_base)-(memory_base)
57: #define MEM_POSTINC(memory_base)(memory_base)+
58: #define L(label) label
59: #define TEXT .text
60: #define ALIGN .align 1
61: #define GLOBL .globl
62: #endif
63:
64: #ifdef MOTOROLA_SYNTAX
65: #define PROLOG(name)
66: #define EPILOG(name)
67: #define R(r)r
68: #define MEM(base)(base)
69: #define MEM_DISP(base,displacement)(displacement,base)
70: #define MEM_INDX(base,idx,size_suffix)(base,idx.size_suffix)
71: #define MEM_INDX1(base,idx,size_suffix,scale)(base,idx.size_suffix*scale)
72: #define MEM_PREDEC(memory_base)-(memory_base)
73: #define MEM_POSTINC(memory_base)(memory_base)+
74: #define L(label) label
75: #define TEXT
76: #define ALIGN
77: #define GLOBL XDEF
78: #define lea LEA
79: #define movel MOVE.L
80: #define moveml MOVEM.L
81: #define moveql MOVEQ.L
82: #define cmpl CMP.L
83: #define orl OR.L
84: #define clrl CLR.L
85: #define eorw EOR.W
86: #define lsrl LSR.L
87: #define lsll LSL.L
88: #define roxrl ROXR.L
89: #define roxll ROXL.L
90: #define addl ADD.L
91: #define addxl ADDX.L
92: #define addql ADDQ.L
93: #define subl SUB.L
94: #define subxl SUBX.L
95: #define subql SUBQ.L
96: #define negl NEG.L
97: #define mulul MULU.L
98: #define bcc BCC
99: #define bcs BCS
100: #define bls BLS
101: #define beq BEQ
102: #define bne BNE
103: #define bra BRA
104: #define dbf DBF
105: #define rts RTS
106: #define d0 D0
107: #define d1 D1
108: #define d2 D2
109: #define d3 D3
110: #define d4 D4
111: #define d5 D5
112: #define d6 D6
113: #define d7 D7
114: #define a0 A0
115: #define a1 A1
116: #define a2 A2
117: #define a3 A3
118: #define a4 A4
119: #define a5 A5
120: #define a6 A6
121: #define a7 A7
122: #define sp SP
123: #endif
124:
125: #ifdef ELF_SYNTAX
126: #define PROLOG(name) .type name,@function
127: #define EPILOG(name) .size name,.-name
128: #define MEM(base)(R(base))
129: #define MEM_DISP(base,displacement)(displacement,R(base))
130: #define MEM_PREDEC(memory_base)-(R(memory_base))
131: #define MEM_POSTINC(memory_base)(R(memory_base))+
132: #ifdef __STDC__
133: #define R_(r)%##r
134: #define R(r)R_(r)
135: #define MEM_INDX_(base,idx,size_suffix)(R(base),R(idx##.##size_suffix))
136: #define MEM_INDX(base,idx,size_suffix)MEM_INDX_(base,idx,size_suffix)
137: #define MEM_INDX1_(base,idx,size_suffix,scale)(R(base),R(idx##.##size_suffix*scale))
138: #define MEM_INDX1(base,idx,size_suffix,scale)MEM_INDX1_(base,idx,size_suffix,scale)
139: #define L(label) .##label
140: #else
141: #define R(r)%/**/r
142: #define MEM_INDX(base,idx,size_suffix)(R(base),R(idx).size_suffix)
143: #define MEM_INDX1(base,idx,size_suffix,scale)(R(base),R(idx).size_suffix*scale)
144: #define L(label) ./**/label
145: #endif
146: #define TEXT .text
147: #define ALIGN .align 2
148: #define GLOBL .globl
149: #define bcc jbcc
150: #define bcs jbcs
151: #define bls jbls
152: #define beq jbeq
153: #define bne jbne
154: #define bra jbra
155: #endif
156:
157: #if defined (SONY_SYNTAX) || defined (ELF_SYNTAX)
158: #define movel move.l
159: #define moveml movem.l
160: #define moveql moveq.l
161: #define cmpl cmp.l
162: #define orl or.l
163: #define clrl clr.l
164: #define eorw eor.w
165: #define lsrl lsr.l
166: #define lsll lsl.l
167: #define roxrl roxr.l
168: #define roxll roxl.l
169: #define addl add.l
170: #define addxl addx.l
171: #define addql addq.l
172: #define subl sub.l
173: #define subxl subx.l
174: #define subql subq.l
175: #define negl neg.l
176: #define mulul mulu.l
177: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>