(dot_cfi, output_cfi_insn): Handle DW_CFA_GNU_window_save.
(output_cie): Don't use DW_EH_PE_pcrel if neither DIFF_EXPR_OK
nor tc_cfi_emit_pcrel_expr are defined.
(output_fde): Use tc_cfi_emit_pcrel_expr if available and
DIFF_EXPR_OK is not defined.
* config/tc-sparc.h (TARGET_USE_CFIPOP): Define.
(tc_cfi_frame_initial_instructions, tc_regname_to_dw2regnum,
tc_cfi_emit_pcrel_expr): Define.
(sparc_cfi_frame_initial_instructions, sparc_regname_to_dw2regnum,
sparc_cfi_emit_pcrel_expr): New prototypes.
(sparc_cie_data_alignment): New decl.
(DWARF2_DEFAULT_RETURN_COLUMN, DWARF2_CIE_DATA_ALIGNMENT): Define.
* config/tc-sparc.c: Include dw2gencfi.h.
(sparc_cie_data_alignment): New variable.
(md_begin): Initialize it.
(sparc_cfi_frame_initial_instructions): New function.
(sparc_regname_to_dw2regnum): Likewise.
(sparc_cfi_emit_pcrel_expr): Likewise.
* doc/as.texinfo: Document .cfi_gnu_window_save.
* config/tc-sparc.c (s_common): Cast last argument to long and
change format string to shut up warning.
testsuite/
* gas/cfi/cfi-sparc-1.s: New test.
* gas/cfi/cfi-sparc-1.d: New test.
* gas/cfi/cfi-sparc64-1.s: New test.
* gas/cfi/cfi-sparc64-1.d: New test.
* gas/cfi/cfi.exp: Run them.
2003-08-16 Jason Eckhardt <jle@rice.edu>
* i860.h (fmov.ds): Expand as famov.ds.
(fmov.sd): Expand as famov.sd.
(pfmov.ds): Expand as pfamov.ds.
gas/testsuite/ChangeLog:
2003-08-16 Jason Eckhardt <jle@rice.edu>
* gas/i860/pseudo-ops01.{s,d}: New files.
* gas/i860/i860.exp: Execute the new test above.
* gas/i860/README.i860: Mention that pseudo-ops need more testing
and remove the align fill defect from the list.
2003-08-06 Jason Eckhardt <jle@rice.edu>
* config/tc-i860.c (i860_handle_align): New function.
* config/tc-i860.h (HANDLE_ALIGN): Define macro.
(MAX_MEM_FOR_RS_ALIGN_CODE): Define macro.
gas/testsuite:
2003-08-06 Jason Eckhardt <jle@rice.edu>
* gas/i860/dir-align01.{s,d}: New files.
* gas/i860/i860.exp: Execute the new test above.
2003-08-06 Jason Eckhardt <jle@rice.edu>
* config/tc-i860.c (i860_process_insn): Check that instructions
with their dual-bit set are 8-byte aligned.
gas/testsuite:
2003-08-06 Jason Eckhardt <jle@rice.edu>
* gas/i860/dual02-err.l: Update expected error message.
* gas/i860/README.i860: Remove dual02-err from known failure list.
* gas/i860/dir-intel01.{s,d}: New files.
* gas/i860/dir-intel02.{s,d}: New files.
* gas/i860/dir-intel03-err.{s,l}: New files.
* gas/i860/i860.exp: Execute the above new tests.
* gas/i860/dual01.{s,d}: New files.
* gas/i860/dual02-err.{s,l}: New files.
* gas/i860/dual03.{s,d}: New files.
* gas/i860/i860.exp: Execute the above new tests.
* gas/i860/README.i860: Update.
* gas/m68hc11/abi.s: New test for abi elf flags.
* gas/m68hc11/abi-m68hc11-32-64.d: Test for 32-bit int, 64-bit float.
* gas/m68hc11/abi-m68hc11-16-64.d: Test for 16-bit int, 64-bit float.
* gas/m68hc11/abi-m68hc11-32-32.d: Test for 32-bit int, 32-bit float.
* gas/m68hc11/abi-m68hc11-16-32.d: Test for 16-bit int, 32-bit float.
* mips.h (CPU_RM7000): New macro.
(OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns.
bfd/
* archures.c (bfd_mach_mips7000): New.
* bfd-in2.h: Regenerated.
* cpu-mips.c (arch_info_struct): Add an entry for mips:7000.
* elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000.
(mips_mach_extensions): Add an entry for it.
opcodes/
* mips-dis.c (mips_arch_choices): Add rm7000 and rm9000 entries.
gas/
* config/tc-mips.c (hilo_interlocks): True for CPU_RM7000.
(mips_cpu_info_table): Add rm7000 and rm9000 entries.
gas/testsuite/
* gas/mips/rm7000.[sd]: New test.
* gas/mips/mips.exp: Run it.
2003-07-08 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (mips_validate_fix): Do not warn about branch
target being a global symbol if not compiling SVR4 PIC code.
[ gas/testsuite/ChangeLog ]
2003-07-08 Chris Demetriou <cgd@broadcom.com>
* gas/testsuite/gas/mips/mips.exp: Make sure that branch-misc-2 is
run to compile non-PIC code, and add branch-misc-2pic.
* gas/mips/branch-misc-2.l: Adjust for change in non-PIC warnings.
* gas/mips/branch-misc-2pic.l: New file.
* gas/mips/branch-misc-2pic.s: New file.
(DSYMMODE): Remove.
(parse_exp): Replace expressionS argument with a h8_op. Parse the
operand size as well.
(skip_colonthing): Remove unused expression argument. Tighten checks
for 2-digit sizes.
(colonmod24): Remove.
(get_mova_operands): Combine calls to parse_exp and skip_colonthing.
(get_operand): Likewise. Use the standard code to read the size of
pc-relative operands.
(fix_operand_size): Include the size-guessing logic that used to be
in colonmod24 and get_operand. Don't apply dd:2 optimizations to
offsets with a symbolic component.
testsuite/
* gas/h8300/h8sx_disp2.[sd]: Add tests for symbolic displacements.
2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
* gas/config/tc-i386.c (md_assemble): Support Intel Precott New
Instructions.
* gas/config/tc-i386.h (CpuPNI): New.
(CpuUnknownFlags): Add CpuPNI.
gas/testsuite/
2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Add prescott.
* gas/i386/prescott.d: New file.
* gas/i386/prescott.s: Likewise.
include/opcode/
2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
* i386.h (i386_optab): Support Intel Precott New Instructions.
opcodes/
2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (PNI_Fixup): New. Fix up "mwait" and "monitor" in
Intel Precott New Instructions.
(PREGRP27): New. Added for "addsubpd" and "addsubps".
(PREGRP28): New. Added for "haddpd" and "haddps".
(PREGRP29): New. Added for "hsubpd" and "hsubps".
(PREGRP30): New. Added for "movsldup" and "movddup".
(PREGRP31): New. Added for "movshdup" and "movhpd".
(PREGRP32): New. Added for "lddqu".
(dis386_twobyte): Use PREGRP30 to replace the "movlpX" entry.
Use PREGRP31 to replace the "movhpX" entry. Use PREGRP28 for
entry 0x7c. Use PREGRP29 for entry 0x7d. Use PREGRP27 for
entry 0xd0. Use PREGRP32 for entry 0xf0.
(twobyte_has_modrm): Updated.
(twobyte_uses_SSE_prefix): Likewise.
(grps): Use PNI_Fixup in the "sidtQ" entry.
(prefix_user_table): Add PREGRP27, PREGRP28, PREGRP29, PREGRP30,
PREGRP31 and PREGRP32.
(float_mem): Use "fisttp{l||l|}" in entry 1 in opcode 0xdb.
Use "fisttpll" in entry 1 in opcode 0xdd.
Use "fisttp" in entry 1 in opcode 0xdf.
special handling for n32 ABI.
(macro): Likewise.
* gas/mips/elf-rel-got-n32.d: Remove special handling for n32 ABI.
* gas/mips/elf-rel-xgot-n32.d: Likewise.
* gas/mips/jal-newabi.d: Likewise.
* ld-mips-elf/elf-rel-got-n32.d: Remove special handling for n32 ABI.
* ld-mips-elf/elf-rel-xgot-n32.d: Likewise.
* gas/z8k/dec.s: New file.
* gas/z8k/decbf.s: New file.
* gas/z8k/decf.s: New file.
* gas/z8k/eidi.s: New file.
* gas/z8k/eidif.s: New file.
* gas/z8k/inc.s: New file.
* gas/z8k/incbf.s: New file.
* gas/z8k/incf.s: New file.
* gas/z8k/inout.d: New file.
* gas/z8k/inout.s: New file.
* gas/z8k/jr-back.s: New file.
* gas/z8k/jr-backf.s: New file.
* gas/z8k/jr-forw.s: New file.
* gas/z8k/jr-forwf.s: New file.
* gas/z8k/ldk.s: New file.
* gas/z8k/ldkf.s: New file.
* gas/z8k/z8k.exp: New file.
(output_cie): Don't pad.
(output_fde): Add align argument. Pad to align if not 0.
(cfi_finish): Set .eh_frame alignment to EH_FRAME_ALIGNMENT.
Pad just last FDE to EH_FRAME_ALIGNMENT.
* gas/cfi/cfi-i386.d: Regenerated.
* gas/cfi/cfi-common-1.d: Regenerated.
* gas/cfi/cfi-common-2.d: Regenerated.
* gas/cfi/cfi-common-3.d: Regenerated.
* gas/cfi/cfi-x86_64.d: Regenerated.
* gas/cfi/cfi-alpha-1.d: Regenerated.
* gas/cfi/cfi-alpha-2.d: Regenerated.
* gas/cfi/cfi-alpha-3.d: Regenerated.
* gas/mips/elempic.d: Force o64 ABI.
* gas/mips/telempic.d: Likewise.
* ld-mips-elf/rel32-n32.d: Force big endian assembly.
* ld-mips-elf/rel32-o32.d: Likewise.
* ld-mips-elf/rel64.d: Likewise.
* h8300.h (IMM4_NS, IMM8_NS): New.
(h8_opcodes): Replace IMM4 with IMM4_NS in mov.b and mov.w entries.
Likewise IMM8 for mov.w and mov.l. Likewise IMM16U for mov.l.
gas/testsuite
* gas/h8300/h8sx_mov_imm.[sd]: New test.
* gas/h8300/h8300.exp: Run it.
* gas/h8300/t01_mov.s: New file, tests mov instructions.
* gas/h8300/t02_mova.s: New file, tests mova instructions.
* gas/h8300/t03_add.s: New file, tests add instructions.
* gas/h8300/t04_sub.s: New file, tests sub instructions.
* gas/h8300/t05_cmp.s: New file, tests cmp instructions.
* gas/h8300/t06_ari2.s: New file, tests arithmetic instructions.
* gas/h8300/t07_ari3.s: New file, tests arithmetic instructions.
* gas/h8300/t08_or.s: New file, tests or instructions.
* gas/h8300/t09_xor.s: New file, tests xor instructions.
* gas/h8300/t10_and.s: New file, tests and instructions.
* gas/h8300/t11_logs.s: New file, tests logical instructions.
* gas/h8300/t12_bit.s: New file, tests bit instructions.
* gas/h8300/t13_otr.s.s: New file, tests misc. instructions.
* gas/h8300/t01_mov.exp: New file.
* gas/h8300/t02_mova.exp: New file.
* gas/h8300/t03_add.exp: New file.
* gas/h8300/t04_sub.exp: New file.
* gas/h8300/t05_cmp.exp: New file.
* gas/h8300/t06_ari2.exp: New file.
* gas/h8300/t07_ari3.exp: New file.
* gas/h8300/t08_or.exp: New file.
* gas/h8300/t09_xor.exp: New file.
* gas/h8300/t10_and.exp: New file.
* gas/h8300/t11_logs.exp: New file.
* gas/h8300/t12_bit.exp: New file.
* gas/h8300/t13_otr.exp: New file.
* gas/i860/bitwise.{s,d}: New files.
* gas/i860/bte.{s,d}: New files.
* gas/i860/fldst01.{s,d}: New files.
* gas/i860/fldst02.{s,d}: New files.
* gas/i860/fldst03.{s,d}: New files.
* gas/i860/fldst04.{s,d}: New files.
* gas/i860/fldst05.{s,d}: New files.
* gas/i860/fldst06.{s,d}: New files.
* gas/i860/fldst07.{s,d}: New files.
* gas/i860/fldst08.{s,d}: New files.
* gas/i860/float01.{s,d}: New files.
* gas/i860/float02.{s,d}: New files.
* gas/i860/float03.{s,d}: New files.
* gas/i860/float04.{s,d}: New files.
* gas/i860/form.{s,d}: New files.
* gas/i860/iarith.{s,d}: New files.
* gas/i860/ldst01.{s,d}: New files.
* gas/i860/ldst02.{s,d}: New files.
* gas/i860/ldst03.{s,d}: New files.
* gas/i860/ldst04.{s,d}: New files.
* gas/i860/ldst05.{s,d}: New files.
* gas/i860/ldst06.{s,d}: New files.
* gas/i860/pfam.{s,d}: New files.
* gas/i860/pfmam.{s,d}: New files.
* gas/i860/pfmsm.{s,d}: New files.
* gas/i860/pfsm.{s,d}: New files.
* gas/i860/regress01.{s,d}: New files.
* gas/i860/shift.{s,d}: New files.
* gas/i860/simd.{s,d}: New files.
2003-05-03 H.J. Lu <hjl@gnu.org>
* config/obj-elf.c (obj_elf_parse_section_letters): Make it a
fatal error for unknown section attribute.
* config/tc-alpha.c (alpha_elf_section_letter): Return -1 for
unknown section attribute.
* config/tc-ia64.c (ia64_elf_section_letter): Likewise.
* config/tc-ppc.c (ppc_section_letter): Likewise.
* config/tc-ia64.c (ia64_elf_section_letter): Handle 'o'.
(ia64_elf_section_type): Accept "unwind".
gas/testsuite/
2003-05-03 H.J. Lu <hjl@gnu.org>
* gas/ia64/ia64.exp: Add unwind.
* gas/ia64/unwind.s: New. Test the new section attribute 'o'
and the new section type "unwind".
* gas/ia64/unwind.d: Likewise.
2003-05-01 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.h (tc_canonicalize_section_name): New.
* config/obj-elf.c (obj_elf_section_name): Call
tc_canonicalize_section_name if it is defined.
gas/testsuite/
2003-05-01 H.J. Lu <hjl@gnu.org>
* gas/ia64/ia64.exp: Add secname.
* gas/ia64/secname.s: New. Test the trailing '#' in section
name.
* gas/ia64/secname.d: Likewise.
2003-04-30 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.c (ia64_number_to_chars): New function pointer.
(ia64_float_to_chars): Likewise.
(dot_byteorder): Set target_big_endian, ia64_number_to_chars
and ia64_float_to_chars by tc_segment_info_data.endian from
the current segment if byteorder == -1.
(md_begin): Call dot_byteorder to set target_big_endian.
(md_atof): Call ia64_float_to_chars to convert floating point.
(ia64_float_to_chars_bigendian): New function.
(ia64_float_to_chars_littleendian): Likewise.
(ia64_elf_section_change_hook): Likewise.
* config/tc-ia64.h (ia64_number_to_chars): New.
(md_number_to_chars): Changed to (*ia64_number_to_chars)
(ia64_elf_section_change_hook): New.
(md_elf_section_change_hook): Defined.
(ia64_segment_info_type): New struct.
(TC_SEGMENT_INFO_TYPE): Defined.
gas/testsuite/
2003-04-30 H.J. Lu <hjl@gnu.org>
* gas/ia64/ia64.exp: Add order.
* gas/ia64/order.s: New file.
* gas/ia64/order.d: Likewise.
* cgen.c (gas_cgen_begin): New function. If flag_signed_overflow_ok is set
call cgen_set_signed_overflow_ok otherwise call cgen_clear_signed_overflow_ok.
* cgen.h: Prototype gas_cgen_begin.
* testsuite/gas/m32r/m32r.exp: Run signed-relocs test.
* testsuite/gas/m32r/signed-relocs.s: New file: Test signed relocs.
* testsuite/gas/m32r/signed-relocs.d: New file: Expected results
* ia64-asmtab.c: Regenerate.
* gas/ia64/dependency-1.s: New file: Test read before write dependency.
* gas/ia64/dependency-1.d: New file: Expected assembly results.
* gas/ia64/ia64.exp: Run the new test.
* gas/mips/mips5.d: New test.
* gas/mips/mips5.l: New test stderr listing.
* gas/mips/mips5.s: New test source file.
* gas/mips/mips.exp: Run the mips5 test.
2003-04-02 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (macro2): Adjust implementation of
M_ULH, M_ULHU, M_ULW, and M_ULD so that they work properly
in the case where the source and destination registers
are the same.
[ gas/testsuite/ChangeLog ]
2003-04-02 Chris Demetriou <cgd@broadcom.com>
* gas/mips/ulh.d: Adjust for ulh and ulhu macro assembly changes.
* gas/mips/mips.exp: Define new "gpr_ilocks" architecture
property, and add it to mips2 (and later) chips and r3900.
* gas/mips/uld2.s: New test source file.
* gas/mips/ulh2.s: Likewise.
* gas/mips/ulw2.s: Likewise.
* gas/mips/uld2.l: New test stderr listing.
* gas/mips/ulh2.l: Likewise.
* gas/mips/ulw2.l: Likewise.
* gas/mips/uld2-eb.d: New test.
* gas/mips/uld2-el.d: Likewise.
* gas/mips/ulh2-eb.d: Likewise.
* gas/mips/ulh2-el.d: Likewise.
* gas/mips/ulw2-eb-ilocks.d: Likewise.
* gas/mips/ulw2-eb.d: Likewise.
* gas/mips/ulw2-el-ilocks.d: Likewise.
* gas/mips/ulw2-el.d: Likewise.
* gas/mips/mips.exp: Run new tests for appropriate architectures.