Alan Modra
3f9b03b5da
Assorted code cleanup and fixes for hppa. Re-enable elf32-hppa as
...
it now compiles even if it doesn't work too well.
2000-05-02 00:12:52 +00:00
Jeff Law
a02fab7e03
* config/tc-hppa.c (md_apply_fix): Handle new PA2.0 formats.
...
* config/tc-hppa.c (CHECK_ALIGN): New macro.
Added handling of new operand types l,y,&,fe,fE,fx.
2000-04-21 20:34:00 +00:00
Jeff Law
c97305a1da
* config/tc-hppa.c (pa_build_unwind_subspace): Use subseg_new to create
...
the unwinder subspace. Save the current seg/subseg before creating
the new seg/subseg.
2000-02-11 21:27:41 +00:00
Jeff Law
afbf211f5a
* config/tc-hppa.c (pa_ip): Handle PA2.0 unit completers. Handle
...
'B' operand for PA2.0 bb instruction.
1999-11-25 03:27:35 +00:00
Jeff Law
476cdcb88f
* config/tc-hppa.c (md_apply_fix): Make "fmt" an int.
1999-10-17 23:19:13 +00:00
Jeff Law
d53d27516f
* config/tc-hppa.c (pa_ip): Add new codes 'cc', 'cd', 'cC', 'co',
...
'@'. Change autoincrement completers to fall through to cache control
completers.
* config/tc-hppa.c (pa_ip): Remove unused args. Add code to '?W'
arg.
(pa_parse_addb_64_cmpltr): New function.
* config/tc-hppa.c (pa_ip): Change error message.
(pa_ip,pa_parse_cmpb_64_cmpltr,pa_parse_cmpib_64_cmpltr) Fix '?N' and
'?Q' args to allow falling through.
* config/tc-hppa.c (pa_ip): Implement conditional codes "?N", "?Q".
Remove unused conditional codes.
(pa_parse_cmpb_64_cmpltr,pa_parse_cmpib_64_cmpltr): New.
1999-10-10 07:57:30 +00:00
Jeff Law
d3426803c5
Remove accidental case duplication.
1999-09-23 16:09:23 +00:00
Jeff Law
ce674324e1
* config/tc-hppa.c (pa_ip): Replace 'B', 'M', 'l' and 'g' handling
...
with cleaner code using completer prefixes. Add 'Y'.
1999-09-23 14:30:31 +00:00
Jeff Law
fd232ac8d5
* config/tc-hppa.c (pa_ip): Add parens to silence compiler.
1999-09-23 13:15:29 +00:00
Jeff Law
b1039fc41e
* config/tc-hppa.c (pa_ip): Avoid ANSI specific initialization.
...
(pa_ip, case 'm'): Failure to get a CBIT specifier just means the
insn does not match and we should try the next insn in the table.
1999-09-22 15:43:26 +00:00
Jeff Law
54af6ff675
* config/tc-hppa.c (pa_ip): Fix thinkos in recent cleanup
...
of PA2.0 support.
1999-09-20 10:06:05 +00:00
Jeff Law
65fab780c5
* config/tc-hppa.c (pa_ip): Handle 'J', 'K' and 'cc'
...
operands.
1999-09-19 20:07:01 +00:00
Jeff Law
71823da428
* config/tc-hppa.c (pa_ip); Handle "fe", and 'cJ'.
1999-09-19 19:46:52 +00:00
Jeff Law
61dd1d313e
* config/tc-hppa.c (pa_ip): Handle 'd', '#' and 'cq'.
1999-09-19 19:23:08 +00:00
Jeff Law
1cf6ae6758
* config/tc-hppa.c (struct pa_it): New field "trunc".
...
(pa_ip): Hadnle 'h', 'm', '=', '{', and '_' operands.
(pa_parse_ftest_gfx_completer): New function
(pa_parse_fp_cnv_format): New function.
1999-09-19 18:47:37 +00:00
Jeff Law
77c02e18c1
* config/tc-hppa.c (pa_ip): Handle 'X' operand.
...
(md_apply_fix): Handle 22bit pc-rel branches.
1999-09-19 18:13:50 +00:00
Jeff Law
629d9417e1
* config/tc-hppa.c (pa_ip): Handle 'B' operand.
1999-09-19 17:38:09 +00:00
Jeff Law
dbe2f9eec8
* config/tc-hppa.c (pa_ip): Handle 'L' and 'M' operands.
1999-09-19 17:09:23 +00:00
Jeff Law
3db6e6bd57
* config/tc-hppa.c (pa_ip): Handle 'l' operand.
1999-09-19 16:58:33 +00:00
Jeff Law
6be783603d
* config/tc-hppa.c (pa_ip): Handle 'g' operand.
1999-09-19 16:45:20 +00:00
Jeff Law
e061d86ffd
* config/tc-hppa.c (md_assemble): Fix dwarf2 line handling.
...
(pa_ip): Handle 'fX'.
1999-09-18 18:16:21 +00:00
Jeff Law
f1a1312b73
Really fix the typo.
1999-09-18 13:41:01 +00:00
Jeff Law
9d957cd576
Fix typo in last change.
1999-09-18 13:26:46 +00:00
Jeff Law
7acbfc6b56
* config/tc-hppa.c (pa_build_unwind_subspace): Do not build
...
unwinds unless the function is in the text space.
(pa_type_args): Set BSF_FUNCTION for an exproted data symbol.
1999-09-17 18:00:50 +00:00
Jeff Law
b52c78b8a6
* config/tc-hppa.c (pa_ip): Move dwarf2 stuff from here.
...
(md_assemble): To here. Tweak address generation.
1999-09-15 13:19:32 +00:00
Jeff Law
2d93dcc450
* config/tc-hppa.c: Include dwarf2dbg.h if OBJ_ELF. Declare
...
debug_line.
(md_pseudo_table): Add .file and .line pseudo-ops for OBJ_ELF.
(md_assemble): Call dwarf2_where for OBJ_ELF.
(pa_ip): Call dwarf2_gen_line_info for OBJ_ELF.
(pa_end_of_source): New function.
* tc-hppa.h (md_end): Define for OBJ_ELF.
1999-09-15 11:17:54 +00:00
Jeff Law
4964086a66
* config/tc-hppa.c (pa_ip): Support 'Z' argument.
1999-09-07 19:48:13 +00:00
Jeff Law
e7c1f43c29
* config/tc-hppa.c (pa_ip): Put strict register checks before
...
call to pa_parse_number.
1999-09-07 19:30:14 +00:00
Jeff Law
0f4f8b56e7
* config/tc-hppa.c (pa_ip): Get strict/non-strict mode from the
...
candidate instruction. Require registers for register arguments
when in strict mode. Require assemble-time constants for
constants when in strict mode.
(pa_get_absolute_expression): Require a constant when in strict
mode.
1999-09-06 10:28:21 +00:00
Jeff Law
97e1581b3f
* config/tc-hppa.c (pa_ip): Replace 'f' by 'v'. Prefix float register
...
args by 'f'.
1999-08-29 07:52:32 +00:00
Jeff Law
9e4f2d3a85
* config/tc-hppa.c (pa_ip): Add args q, %, and |.
1999-08-28 10:59:37 +00:00
Jeff Law
680ef6de90
* config/tc-hppa.c (pa_ip): Absorb white space in instructions
...
between args.
Add new completers. Fix bug in 64 bit condition handling.
1999-08-28 10:18:12 +00:00
Jeff Law
413c94baca
* config/tc-hppa.c (pa_ip): Add completer codes 'a', 'ch', 'cH',
...
'cS', and 'c*'.
1999-08-28 08:48:40 +00:00
Jeff Law
28252e6156
* config/tc-hppa.c (pa_ip): Place completers behind prefix 'c'.
1999-08-28 08:16:30 +00:00
Jeff Law
17d9105c0a
* config/tc-hppa.c (pa_ip): Do not allow '*' in 32bit completers.
1999-08-28 07:23:42 +00:00
Jeff Law
a97685e901
* config/tc-hppa.c (pa_ip): Add cases for '.', '~'. '$'. and '!'
1999-08-28 06:42:06 +00:00
Jeff Law
9ecc05f0de
* config/tc-hppa.c (pa_ip): Add case for 'I'.
1999-08-28 06:28:21 +00:00
Jeff Law
b100be6695
* config/tc-hppa.c (pa_build_unwind_subspace): Use sane section
...
flags for the unwind subspace.
1999-08-11 09:41:28 +00:00
Jeff Law
9100134ca0
Fix typos in last change.
1999-08-10 19:09:43 +00:00
Jeff Law
46031ca9e4
* config/tc-hppa.c (UNWIND_SECTION_NAME): Define for ELF.
...
(pa_build_unwind_subspace): Remove #if 0 wrapper. Select a
suitable relocation based on the size of the target's pointer.
Always Use subsegment zero for the unwinders.
(pa_level): Handle "2.0w".
1999-08-10 19:02:30 +00:00
Jeff Law
0741736bf6
* config/tc-hppa.c (pa_ip, case '?'): Add missing break.
1999-08-06 18:13:31 +00:00
Jeff Law
9a913dfbfb
* config/tc-hppa.c (pa_ip): Add 64 bit condition completers.
1999-08-06 15:48:42 +00:00
Jeff Law
55a914bc48
* config/tc-hppa.c (pa_ip): Change condition args to have '?' prefix.
1999-08-05 22:56:06 +00:00
Jeff Law
39ba556164
* config/tc-hppa.c (pa_chk_field_selector): Allow 3 byte
...
selectors for ELF too.
(selector_table): Add "ltp" and "rtp" selectors.
1999-08-05 00:09:42 +00:00
Jeff Law
b53fcc20b1
* config/tc-hppa.c (pa_ip): Add 'J' and 'K' code
...
processing.
1999-07-28 08:07:14 +00:00
Jeff Law
077db52a1e
d
...
* config/tc-hppa.c (md_pseudo_table): Add ".dword" pseudo-op.
(cons_fix_new_hppa): Derive size of fixup from size of the object.
1999-07-15 01:49:48 +00:00
Jeff Law
b1c5e0ee59
h
...
* config/tc-hppa.c (pa_ip): Convert the opcode and all completers
into lower case.
1999-07-01 14:37:29 +00:00
Jeff Law
b388df8754
d
...
* tc-hppa.c (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
(hppa_gen_reloc_type): Conditionalize on BFD64.
(tc_gen_reloc): Re-enable ELF relocations.
* tc-hppa.h (TARGET_FORMAT): Handle elf64-hppa format.
1999-06-21 15:48:51 +00:00
Jeff Law
49863f82f0
* tc-hppa.c: General cleanups of ELF support. No more spaces
...
and subspaces for ELF.
(GDB_DEBUG_SPACE_NAME): Delete definition for ELF.
(GDB_STRINGS_SUBSPACE_NAME): Likewise.
(GDB_SYMBOLS_SUBSPACE_NAME): Likewise
(UNWIND_SECTION_NAME): Likewise.
(space/subspace related structures): Conditionalize definitions
on OBJ_SOM.
(space/subspace directives and support routines): Conditionalize
definitions and references/uses on OBJ_SOM.
(label_symbol_struct): For ELF, track the symbol's segment. For
SOM track its space.
(pa_define_label, pa_undefine_label, pa_get_label): Corresponding
changes.
(USE_ALIASES): Kill for both SOM & ELF.
(pa_def_subspaces, pa_def_spaces): Corresponding changes.
(pa_space, pa_subspace): Corresponding changes.
(pa_spaces_begin): Corresponding chagnes.
(md_begin): Do not muck around with space/subspace stuff for
OBJ_ELF.
(md_apply_fix): Temporarily disable argument relocation stuff
for OBJ_ELF.
(tc_gen_reloc): Temporarily disable relocation generation for
OBJ_ELF
(pa_build_unwind_subspace): Similarly.
1999-06-18 13:35:16 +00:00
Ian Lance Taylor
993142d5a4
1999-06-04 Mark Klein <mklein@dis.com>
...
* config/tc-hppa.c (md_begin): Convert local symbol dummy_symbol
to real if OBJ_SOM
(tc_gen_reloc): Still need bfd_abs_symbol in some relocs.
1999-06-04 21:08:54 +00:00
Ian Lance Taylor
398e8c258a
1999-06-04 Mark Klein <mklein@dis.com>
...
* config/tc-hppa.c: Update for symbol handling changes.
1999-06-04 10:46:25 +00:00
Ian Lance Taylor
a0f75b47e9
* config/tc-hppa.h: Update for symbol handling changes.
...
* config/tc-hppa.c: Likewise.
1999-06-03 12:42:36 +00:00
Ian Lance Taylor
49309057b4
Add support for storing local symbols in a small structure to save
...
memory when assembling large files.
* as.h: Don't include struc-symbol.h.
(symbolS): Add typedef.
* symbols.c: Include struc-symbol.h.
(local_hash): New static variable.
(save_symbol_name): New static function, from symbol_create.
(symbol_create): Call save_symbol_name.
(local_symbol_count): New static variable.
(local_symbol_conversion_count): Likewise.
(LOCAL_SYMBOL_CHECK): Define.
(local_symbol_make): New static function.
(local_symbol_convert): New static function.
(colon): Handle local symbols. Create local symbol for local
label name.
(symbol_table_insert): Handle local symbols.
(symbol_find_or_make): Create local symbol for local label name.
(symbol_find_base): Check for local symbol.
(symbol_append, symbol_insert): Check for local symbols.
(symbol_clear_list_pointers, symbol_remove): Likewise.
(verify_symbol_chain): Likewise.
(copy_symbol_attributes): Likewise.
(resolve_symbol_value): Handle local symbols.
(resolve_local_symbol): New static function.
(resolve_local_symbol_values): New function.
(S_GET_VALUE, S_SET_VALUE): Handle local symbols.
(S_IS_FUNCTION, S_IS_EXTERNAL, S_IS_WEAK, S_IS_COMMON): Likewise.
(S_IS_DEFINED, S_IS_DEBUG, S_IS_LOCAL, S_GET_NAME): Likewise.
(S_GET_SEGMENT, S_SET_SEGMENT, S_SET_EXTERNAL): Likewise.
(S_CLEAR_EXTERNAL, S_SET_WEAK, S_SET_NAME): Likewise.
(symbol_previous, symbol_next): New functions.
(symbol_get_value_expression): Likewise.
(symbol_set_value_expression): Likewise.
(symbol_set_frag, symbol_get_frag): Likewise.
(symbol_mark_used, symbol_clear_used, symbol_used_p): Likewise.
(symbol_mark_used_in_reloc): Likewise.
(symbol_clear_used_in_reloc, symbol_used_in_reloc_p): Likewise.
(symbol_mark_mri_common, symbol_clear_mri_common): Likewise.
(symbol_mri_common_p): Likewise.
(symbol_mark_written, symbol_clear_written): Likewise.
(symbol_written_p): Likewise.
(symbol_mark_resolved, symbol_resolved_p): Likewise.
(symbol_section_p, symbol_equated_p): Likewise.
(symbol_constant_p): Likewise.
(symbol_get_bfdsym, symbol_set_bfdsym): Likewise.
(symbol_get_obj, symbol_set_obj): Likewise.
(symbol_get_tc, symbol_set_tc): Likewise.
(symbol_begin): Initialize local_hash.
(print_symbol_value_1): Handle local symbols.
(symbol_print_statistics): Print local symbol statistics.
* symbols.h: Include "struc-symbol.h" if not BFD_ASSEMBLER.
Declare new symbols.c functions. Move many declarations here from
struc-symbol.h.
(SYMBOLS_NEED_BACKPOINTERS): Define if needed.
* struc-symbol.h (SYMBOLS_NEED_BACKPOINTERS): Don't set.
(struct symbol): Move bsym to make it clearly the first field.
Remove TARGET_SYMBOL_FIELDS.
(symbolS): Don't typedef.
(struct broken_word): Remove.
(N_TYPE_seg, seg_N_TYPE): Move to symbol.h.
(SEGMENT_TO_SYMBOL_TYPE, N_REGISTER): Likewise.
(symbol_clear_list_pointers): Likewise.
(symbol_insert, symbol_remove): Likewise.
(symbol_previous, symbol_append): Likewise.
(verify_symbol_chain, verify_symbol_chain_2): Likewise.
(struct local_symbol): Define.
(local_symbol_converted_p, local_symbol_mark_converted): Define.
(local_symbol_resolved_p, local_symbol_mark_resolved): Define.
(local_symbol_get_frag, local_symbol_set_frag): Define.
(local_symbol_get_real_symbol): Define.
(local_symbol_set_real_symbol): Define.
Define.
* write.c (write_object_file): Call resolve_local_symbol_values.
* config/obj-ecoff.h (OBJ_SYMFIELD_TYPE): Define.
(TARGET_SYMBOL_FIELDS): Don't define.
* config/obj-elf.h (OBJ_SYMFIELD_TYPE): Add local field. If
ECOFF_DEBUGGING, add ECOFF fields.
(ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define.
* config/obj-multi.h (struct elf_obj_sy): Add local field. If
ECOFF_DEBUGGING, add ECOFF fields.
(ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define.
(ECOFF_DEBUG_TARGET_SYMBOL_FIELDS): Don't define.
* config/tc-mcore.h: Don't include struc-symbol.h.
(TARGET_SYMBOL_FIELDS): Don't define.
(struct mcore_tc_sy): Define.
(TC_SYMFIELD_TYPE): Define.
* Many files: Use symbolS instead of struct symbol. Use new
accessor functions rather than referring to symbolS fields
directly.
* read.c (s_mri_common): Don't add in value of line_label.
* config/tc-mips.c (md_apply_fix): Correct parenthesization when
checking for SEC_LINK_ONCE.
* config/tc-sh.h (sh_fix_adjustable): Declare.
1999-06-03 00:29:48 +00:00
Jeff Law
90700a5341
* config/tc-hppa.c (md_apply_fix): Handle 22 bit fmt insn like a
...
17 bit fmt insn.
1999-05-03 09:26:28 +00:00
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00