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 SHIFT_DOUBLE_OMITS_COUNT 43#define SHIFT_DOUBLE_OMITS_COUNT 0 44 45/* Print opcodes the way that GAS expects them. */ 46#define GAS_MNEMONICS 1 47