Commit graph

27 commits

Author SHA1 Message Date
Jim Wilson
f5a30c2e6e Correct unwind region length calculations.
* config/tc-ia64.c (struct unw_rec_list): Add slot_frag field.
	(struct unwind): Add next_slot_frag field.
	(slot_index): New parameters slot_frag and first_frag.  Add code
	to add in frag sizes when different.  Add comments.
	(fixup_unw_records): New locals first_frag and last_frag.  Pass new
	arguments to slot_index.
	(emit_one_bundle): Set slot_frag field.  Set next_slot_number after
	loop end.  Set next_slot_frag field.
2000-11-08 20:55:21 +00:00
Jim Wilson
44f5c83ad3 ia64-hpux patches from Steve Ellcey.
* config/tc-ia64.c (md_shortopts, md_parse_option, md_show_usage):
	Change M to m for -milp32 or -mlp64 to match gcc.
	(dot_endp): Use bytes_per_address instead of 8.
	(emit_one_bundle): Use number_to_chars_littleendian instead of
	md_number_to_chars.
	(fix_insn): Likewise.
	(ia64_init): New function.
	(ia64_target_format): New function.
	(md_begin): Set endianness, arch, and machine as appropriate.
	* config/tc-ia64.h: (TARGET_BYTES_BIG_ENDIAN, md_number_to_chars):
	Make these macros depend on TE_HPUX macro.
	(TARGET_FORMAT): Define.
	(HOST_SPECIAL_INIT): Define.
	* config/te-hpux.h: New file.
	* configure.in: Add "ia64-*-hpux*" target to configure.
	* configure: Regenerate.
2000-11-07 01:21:10 +00:00
Jim Wilson
f1bcba5b90 Add tag support. Error for dangling qualifying predicates.
* config/tc-ia64.c (struct md): New field tag_fixups.
	(ia64_flush_insns): Handle tag_fixups.  Error if dangling
	qualifying predicate.
	(emit_one_bundle): Delete spurious multiplication by one.  Handle
	tag_fixups.
	(ia64_start_line): Error if dangling qualifying predicate.
	(defining_tag): New static variable.
	(ia64_unrecognized_line, case '['): Parse tags.
	(ia64_frob_label): Create tag_fixups.
	(md_assemble): Reset md.qp.X_op after using it.
2000-11-01 00:00:34 +00:00
Bernd Schmidt
ebeeafe61c Better bundle template selection 2000-10-31 10:30:11 +00:00
Jim Wilson
afa680f89a Minor DV table update, minor DV checking bug fix.
* config/tc-ia64.c (resources_match): Handle IA64_RS_PRr.
	* ia64-ic.tbl: Update from Intel.
	* ia64-asmtab.c: Regenerate.
2000-10-05 21:55:25 +00:00
Alan Modra
56d27c17b8 Excise C++ style comments. 2000-10-04 00:28:45 +00:00
Jim Wilson
139368c9f3 Fix ia64 gas testsuite. Update ia64 DV tables. Fix ia64 gas testsuite again.
gas/ChangeLog
	* config/tc-ia64.c (dv_sem): Add "stop".
	(specify_resource, case IA64_RS_PR): Only handles regs 1 to 15 now.
	(specify_resource, case IA64_RS_PRr): New for regs 16 to 62.
	(specify_resource, case IA64_RS_PR63): Reorder (note == 7) test to
	match above.
	(mark_resources): Check IA64_RS_PRr.
gas/testsuite/ChangeLog
	* gas/ia64/dv-raw-err.s: Add new testcases for PR%, 16 - 62.
	* gas/ia64/dv-waw-err.s: Likewise.
	* gas/ia64/dv-imply.d: Regenerate.
	* gas/ia64/dv-mutex.d, gas/ia64/dv-raw-err.l, gas/ia64/dv-safe.d,
	gas/ia64/dv-srlz.d, gas/ia64/dv-war-err.l, gas/ia64/dv-waw-err.l,
	gas/ia64/opc-f.d, gas/ia64/opc-i.d, gas/ia64/opc-m.d: Likewise.
include/opcode/ChangeLog
	* ia64.h (enum ia64_dependency_semantics): Add IA64_DVS_STOP.
opcodes/ChangeLog
	* ia64-dis.c (print_insn_ia64): Revert Aug 7 byte skip count change.
	* ia64-gen.c (parse_semantics): Handle IA64_DVS_STOP.
	(lookup_specifier): Handle "PR%, 1 to 15" and "PR%, 16 to 62".
	* ia64-ic.tbl, ia64-raw.tbl, ia64-war.tbl, ia64-waw.tbl: Update.
	* ia64-asmtab.c: Regnerate.
2000-09-22 19:43:50 +00:00
Kazu Hirata
4a4f25cfde 2000-09-15 Kazu Hirata <kazu@hxi.com>
* config/tc-h8300.h: Fix formatting.
	* config/tc-h8500.c: Likewise.
	* config/tc-h8500.h: Likewise.
	* config/tc-hppa.h: Likewise.
	* config/tc-i370.h: Likewise.
	* config/tc-i386.h: Likewise.
	* config/tc-i860.c: Likewise.
	* config/tc-i860.h: Likewise.
	* config/tc-i960.h: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-ia64.h: Likewise.
2000-09-16 00:56:47 +00:00
Timothy Wall
7484b8e6d9 Eliminate false DVs on parallel compares. 2000-09-14 21:37:04 +00:00
Kazu Hirata
542d6675fa 2000-09-03 Kazu Hirata <kazu@hxi.com>
* cgen.c: Fix formatting.
	* config/tc-ia64.c: Likewise.
2000-09-06 02:36:20 +00:00
Richard Henderson
032efc8517 * config/tc-ia64.c (emit_one_bundle): Stop collecting insns
for template selection when a label is needed.
2000-09-03 09:36:57 +00:00
Kazu Hirata
197865e878 2000-09-02 Kazu Hirata <kazu@hxi.com>
* config/tc-ia64.c: Fix formatting.
2000-09-03 00:04:40 +00:00
Richard Henderson
44576e1fc1 * config/tc-ia64.c (match): Don't inline.
(extra_goodness): New.
        (md_begin): Prefer nop.f and nop.b for best_template.
2000-09-02 01:02:41 +00:00
Jim Wilson
efcc591461 Fix unwind section bug found by linux kernel.
* config/tc-ia64.c (output_unw_records): Set U & E flags only if
	unwind.personality_routine is set.
2000-08-23 20:36:38 +00:00
Jim Wilson
50b81f1903 Fix 3 DV bugs, and a few minor cleanups.
gas/
	* config/tc-ia64.c (specify_resource, case IA64_RS_GR): Handle
	postincrement modified registers.  Handle IA64_OPND_R3_2 addl
	source registers.
	(note_register_values): Handle IA64_OPND_R3_2 operands.
gas/testsuite/
	* gas/ia64/dv-raw-err.s: Add new tests for addl and postinc.
	* gas/ia64/dv-raw-err.l: Likewise.
	* gas/ia64/dv-waw-err.l: Update sed pattern.
	* gas/ia64/opc-f.pl: Delete fpsub, and fpadd comment.
	* gas/ia64/opc-f.s, gas/ia64/opc-f.d: Regenerate.
include/opcode/
	* ia64.h (IA64_OPCODE_POSTINC): New.
opcodes/
	* ia64-ic.tbl (pr-readers-nobr-nomovpr): Add addl, adds.  Delete
	break, mov-immediate, nop.
	* ia64-opc-f.c: Delete fpsub instructions.
	* ia64-opc-m.c: Add POSTINC to all instructions with postincrement
	address operand.  Rewrite using macros to avoid long lines.
	* ia64-opc.h (POSTINC): Define.
	* ia64-asmtab.c: Regenerate.
2000-08-16 23:20:15 +00:00
Jim Wilson
c43c2cc5fa Add support for IA-64 specific elf header flags.
bfd/
2000-08-14  Jim Wilson  <wilson@cygnus.com>
	* elf64-ia64.c (elf64_ia64_merge_private_bfd_data): Handle
	EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP, and EF_IA_64_NOFUNCDESC_CONS_GP.
	(elf64_ia64_print_private_bfd_data): Likewise.  Also handle
	EF_IA_64_ABSOLUTE.
gas/
2000-08-14  Jim Wilson  <wilson@cygnus.com>
	* config/tc-ia64.c (md_longopts): Add -mconstant-gp and -mauto-pic.
	(md_parse_option):  Add OPTION_MCONSTANT_GP and OPTION_MAUTO_PIC.
	(md_begin): Change assignment to md.flag to OR in the new bit.
include/elf/
2000-08-14  Jim Wilson  <wilson@cygnus.com>
	* elf/ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP,
	EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define.
2000-08-14 20:13:39 +00:00
Richard Henderson
30d2525955 * config/tc-ia64.c (unwind): Add prologue_mask member.
(dot_vframe): Elide psp_gr record if it overlaps prologue_gr.
        (dot_save): Likewise for pfs_gr, rp_gr, and preds_gr.
        (dot_body): Clear unwind.prologue_mask.
        (dot_prologue): Set it.  Accept a register second argument.
2000-08-07 21:50:08 +00:00
Jim Wilson
3d56ab850c Fix memory leaks for IA-64 opcode idescs.
gas/
	* config/tc-ia64.c (emit_one_bundle): Call ia64_free_opcode
	before ia64_find_opcode.
	(md_assemble): Likewise.
opcodes/
	* ia64-dis.c (print_insn_ia64): Call ia64_free_opcode at end.
2000-08-02 21:24:54 +00:00
Nick Clifton
bc0d738a8d Fix comments. 2000-07-07 16:58:25 +00:00
Timothy Wall
e9718fe12e Move premature QP notation clearing to it's appropriate location. 2000-06-23 03:31:06 +00:00
Jim Wilson
10850f29fe unwind bug fixes needed for today's gcc patch.
* config/tc-ia64.c (generate_unwind_image): Call ia64_flush_insns.
	(dot_endp): Don't call ia64_flush_insns.
	(emit_one_bundle): Don't delete prologue/body records from
	unwind_record list in first loop.  Rewrite second loop to account for
	this.
2000-06-08 17:07:48 +00:00
Jim Wilson
150f24a284 Patch from David Mosberger, cleanups to improve 32b-x-64b cross support.
* config/tc-ia64.c: Add missing prototypes.
	(generate_unwind_image): Cast argument to output_unw_records call.
2000-06-07 23:14:22 +00:00
Jim Wilson
e0c9811a90 IA-64 unwind info changes, fix errors, add missing pieces, and some cleanup.
* config/tc-ia64.c (dot_restorereg_p): New function.
	(md_pseudo_table): Add restorereg.p.
	...
2000-05-25 02:00:14 +00:00
Richard Henderson
c67e42c950 * config/tc-ia64.c (FUNC_PC_RELATIVE): New.
(pseudo_func): Add pcrel.
        (operand_match):  Handle IA64_OPND_TGT64.
        (build_insn): Likewise.
        (md_begin): Initialize pseudo_func[FUNC_PC_RELATIVE].
        (ia64_gen_real_reloc_type): Handle FUNC_PC_RELATIVE.
        (fix_insn): Handle all three 64-bit relocation types.
2000-05-23 01:48:04 +00:00
Jim Wilson
e4c58b2551 Unwind info bug fixes from David Mosberger.
* config/tc-ia64.c (output_P7_format, case mem_stack_f): Output fixed
	frame size in units of 16 bytes, as required per SW Conventions manual.
	(output_unw_records): Output info-block header as a dword to get
	byte-order right.
2000-05-09 01:54:37 +00:00
Timothy Wall
bf3ca999c1 Clean up F-unit assembly and tests. 2000-04-23 02:53:35 +00:00
Jim Wilson
800eeca487 IA-64 ELF support. 2000-04-21 20:22:24 +00:00