|
|
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 "seq386.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' \
1.1.1.2 ! root 21: && (PTR)[2] == 'p') \
1.1 root 22: { \
1.1.1.2 ! root 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: } \
1.1 root 33: } \
34: }
1.1.1.2 ! root 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 unx386.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.