|
|
1.1 root 1: /* Definitions for Sequent Intel 386 using GAS.
2: Copyright (C) 1992 Free Software Foundation, Inc.
3:
4: /* Mostly it's like a Sequent 386 without GAS. */
5:
6: #include "i386/sequent.h"
7:
8: /* A C statement or statements which output an assembler instruction
9: opcode to the stdio stream STREAM. The macro-operand PTR is a
10: variable of type `char *' which points to the opcode name in its
11: "internal" form--the form that is written in the machine description.
12:
13: GAS version 1.38.1 doesn't understand the `repz' opcode mnemonic.
14: So use `repe' instead. */
15:
16: #undef ASM_OUTPUT_OPCODE
17: #define ASM_OUTPUT_OPCODE(STREAM, PTR) \
18: { \
19: if ((PTR)[0] == 'r' \
20: && (PTR)[1] == 'e' \
21: && (PTR)[2] == 'p') \
22: { \
23: if ((PTR)[3] == 'z') \
24: { \
25: fprintf (STREAM, "repe"); \
26: (PTR) += 4; \
27: } \
28: else if ((PTR)[3] == 'n' && (PTR)[4] == 'z') \
29: { \
30: fprintf (STREAM, "repne"); \
31: (PTR) += 5; \
32: } \
33: } \
34: }
35:
36: /* Define macro used to output shift-double opcodes when the shift
37: count is in %cl. Some assemblers require %cl as an argument;
38: some don't.
39:
40: GAS requires the %cl argument, so override i386/unix.h. */
41:
42: #undef AS3_SHIFT_DOUBLE
43: #define AS3_SHIFT_DOUBLE(a,b,c,d) AS3 (a,b,c,d)
44:
45: /* Print opcodes the way that GAS expects them. */
46: #define GAS_MNEMONICS 1
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.