Commit Graph

7 Commits

Author SHA1 Message Date
Ken Raeburn
0952861cab Handle EV5 (21164/66/68) PALcode support.
* config/tc-alpha.c (machine): New variable.
(load_insn): New macro.
(load_insn_table): New function.
(md_begin): Call load_insn_table, once for basic instructions and
once for appropriate PAL instruction table.
(md_parse_option): Set `machine' based on -m##### arguments.

* config/alpha-opcode.h (alpha_pal21064_opcodes): Split out from alpha_opcodes.
(alpha_pal21164_opcodes): New table.
(NUM21064OPCODES, NUM21164OPCODES): New macros.
1994-06-02 16:06:43 +00:00
Ken Raeburn
40cd35fffd Handle Alpha load-immediate-FP pseudo-instructions:
* config/alpha-opcode.h (ldif, ldig, ldis, ldit): New patterns.
* config/tc-alpha.c (lit8_sec, lit4_sec, lit8_sym, lit4_sym): New variables.
(create_literal_section): New function.
(create_lita_section): Now a macro.
(get_lit8_offset, get_lit4_offset): New functions.
(maybe_set_gp): New function.
(select_gp_value): Call it.
(load_expression): Preserve addend if symbol is a section symbol.
(alpha_ip): Handle new operand type `F' for floating-point constants; store
them in .lit{4,8} sections.
(alpha_ip, case 'G'): Emit LITUSE relocations for symbol exprs.
1994-03-09 02:44:00 +00:00
Ken Raeburn
30869211ae (md_atof): Omit warning about FP values.
(line_comment_chars): Add ! to list.
(md_apply_fix): Do process 32- and 64-bit relocations.
1994-02-28 21:13:23 +00:00
Ken Raeburn
cf272f0244 (load_expression): Parenthesize operations in range checking, to avoid
precedence questions.

(addr32): New static variable.
(md_parse_option): Set it for "-32addr".
(load_symbol_address): If addr32 is set, use ldl instead of ldq.
1994-02-07 21:12:03 +00:00
Ken Raeburn
4a6e1a39e7 * tc-alpha.c (md_section_align): Change second argument and
return type to valueT, to agree with tc.h.
(alpha_do_align): Local static array nop_pattern is now unsigned
char, to avoid overflow warnings.
* tc-alpha.h (md_section_align): Delete declaration.

* obj-ecoff.c (ecoff_frob_file): Ensure that ecoff_data for
output bfd is non-null before indirecting through it.

Crock to get GP set right:
* tc-alpha.c (alpha_frob_ecoff_data): Renamed from alpha_frob_file.
* tc-alpha.h (tc_frob_file): Macro deleted.
* obj-ecoff.c (ecoff_frob_file) [TC_ALPHA]: Call alpha_frob_ecoff_data, then
fill in optional-header info with gp value and register masks.
1994-02-07 10:11:43 +00:00
Ken Raeburn
c79e67a3b7 * write.c (write_object_file): If tc_frob_file is defined, call it
just before calling obj_frob_file.
* config/tc-alpha.c (alpha_gp_value): Renamed from gp_value (refs changed), made
non-static.
(getExpression): Return void.
(select_gp_value): Abort if gp_value is non-zero.  Delete call to non-existent
bfd_set_gp_value.
(alpha_validate_fix): Function deleted.
(alpha_frob_symbol): Function deleted.
(alpha_local_label): Function deleted.
(alpha_frob_file): Renamed from alpha_end.
* config/tc-alpha.h (alpha_frob_symbol, alpha_validate_fix, alpha_local_label,
alpha_end): Declarations deleted.
(alpha_gp_value, alpha_frob_file): Declare.
(tc_frob_symbol, TC_VALIDATE_FIX, md_end): Macros deleted.
(LOCAL_LABEL): Move code here from tc-alpha.c:alpha_local_label.
(md_convert_frag): Simplified slightly.
(tc_frob_file): New macro.
1994-01-30 23:21:55 +00:00
Ken Raeburn
5749c49700 New Alpha support files, based on files from CMU.
Still to do:
 - fix floating-point handling
 - figure out if we can adapt to using ../opcodes/alpha-opc.h
 - gcc bootstrap testing
 - 32-bit mode support?
 - test cross-assembly
1994-01-28 01:37:02 +00:00