From: Ken Raeburn Date: Tue, 29 Nov 1994 20:31:40 +0000 (+0000) Subject: * tc-alpha.c (in_range_signed, in_range_unsigned): New routines, split from X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0eb44acd172fd8d8fcf691f734ca5bc6d88a754b;p=binutils-gdb.git * tc-alpha.c (in_range_signed, in_range_unsigned): New routines, split from in_range. (in_range): Deleted. All calls changed to in_range_*signed. (create_lita_section): Macro deleted. Single use expanded in place. (alpha_ip): Handle `t' and `8' operand types. (md_apply_fix): Handle BFD_RELOC_12_PCREL. Print name of unhandled relocation types. * alpha-opcode.h: Added HALT and DRAINA. Disabled MOVI, since it doesn't work, and isn't supported by the native assembler. --- diff --git a/gas/config/alpha-opcode.h b/gas/config/alpha-opcode.h index 85955c92635..33815838bdd 100644 --- a/gas/config/alpha-opcode.h +++ b/gas/config/alpha-opcode.h @@ -303,7 +303,14 @@ static const struct alpha_opcode alpha_opcodes[] = { "bis", 0x44001400, 0, "1,b,3" }, { "bis", 0x44000400, 0, "r,2" }, /* macro: or ra,rb,ra */ { "bis", 0x44001400, 0, "r,b" }, /* macro: or ra,#,ra */ +#if 0 /* The `b' handling doesn't seem to handle big constants right + now, and even if it did, this pattern would imply that the + constant should be produced and *then* moved into the + destination register, which is silly. Since the native + assembler doesn't support this instruction, don't even bother + trying to fix it. Just punt. */ { "movi", 0x47E01400, 0, "b,3"}, /* movi lit,rc == bis r31,lit,rc */ +#endif { "xor", 0x44000800, 0, "1,2,3" }, { "xor", 0x44001800, 0, "1,b,3" }, { "xor", 0x44000800, 0, "r,2" }, /* macro: ra,rb,ra */ @@ -757,6 +764,8 @@ static const struct alpha_opcode alpha_opcodes[] = { "bpt", 0x00000080, 0, "" }, { "chmk", 0x00000083, 0, "" }, { "imb", 0x00000086, 0, "" }, +{ "halt", 0x00000000, 0, "" }, +{ "draina", 0x00000002, 0, "" }, { "draint", 0x60000000, 0, "" }, /* 6o+5a+5b+16d */ { "trapb", 0x60000000, 0, "" }, /* 6o+5a+5b+16d */