* tc-i386.c (i386_operand_modifier): Remove.
(build_displacement_string): Remove.
(i386_parse_seg): Remove.
(i386_intel_memory_operand): Remove.
(i386_intel_operand): Re-write using recursive descent parser based
on MASM documentation.
(struct intel_parser_s): New structure.
(intel_parser): New static variable.
(struct intel_token): New structure.
(cur_token, prev_token): New static variables.
(T_NIL): Define.
(T_CONST): Define.
(T_REG): Define.
(T_BYTE): Define.
(T_WORD): Define.
(T_DWORD): Define.
(T_QWORD): Define.
(T_XWORD): Define.
(T_SHORT): Define.
(T_OFFSET): Define.
(T_PTR): Define.
(T_ID): Define.
(intel_match_token): New function.
(intel_get_token): New function.
(intel_putback_token): New function.
(intel_expr): New function.
(intel_e05): New function.
(intel_e05_1): New function.
(intel_e06): New function.
(intel_e06_1): New function.
(intel_e09): New function.
(intel_e09_1): New function.
(intel_e10): New function.
(intel_e10_1): New function.
(intel_e11): New function.
2000-10-24 Diego Novillo <dnovillo@cygnus.com>
* intel.s, intel.d: Add new tests for intel syntax.
2000-10-15 Diego Novillo <dnovillo@cygnus.com>
* config/tc-i386.c (i386_operand_modifier): Only match
modifiers SHORT and FLAT if they are followed by a space.
(parse_register): When `allow_naked_reg' is set, do not confuse
identifiers that start with a register name with a register.
gas/testsuite:
2000-10-15 Diego Novillo <dnovillo@cygnus.com>
* intel.s, intel.d: Add new tests for naked registers using intel
syntax.
* elf32-mips.c (mips_elf_next_relocation): Rename from
mips_elf_next_lo16_relocation, and generalize to look
for any relocation type.
(elf_mips_howto_table): Make R_MIPS_PC16 pcrel_offset.
(elf_mips_gnu_rel_hi16): Howto for R_MIPS_GNU_REL_HI16.
(elf_mips_gnu_rel_lo16): Howto for R_MIPS_GNU_REL_LO16.
(elf_mips_gnu_rel16_s2): Howto for R_MIPS_GNU_REL16_S2.
(elf_mips_gnu_pcrel64): Howto for R_MIPS_PC64.
(elf_mips_gnu_pcrel32): Howto for R_MIPS_PC32.
(bfd_elf32_bfd_reloc_type_lookup): Add new relocs.
(mips_rtype_to_howto): Likewise.
(mips_elf_calculate_relocation): Handle new relocs.
(_bfd_mips_elf_relocate_section): REL_HI16/REL_LO16 relocs
are paired. The addend for R_MIPS_GNU_REL16_S2
is shifted right two bits.
In gas/:
* config/tc-mips.c (mips_ip): Don't put stuff in .rodata
when embedded-pic.
* config/tc-mips.c (SWITCH_TABLE): The ELF embedded-pic
implementation doesn't have special handling for switch
statements.
(macro_build): Allow for code in sections other than .text.
(macro): Likewise.
(mips_ip): Likewise.
(md_apply_fix): Do pc-relative relocation madness for MIPS ELF.
Don't perform relocs if we will be outputting them.
(tc_gen_reloc): For ELF, just use fx_addnumber for pc-relative
relocations. Allow BFD_RELOC_16_PCREL_S2 relocs when
embedded-pic.
In gas/testsuite/:
* gas/mips/empic.d: New file.
* gas/mips/empic.s: New file.
* gas/mips/mips16-e.d: New file.
* gas/mips/mips16-e.s: New file.
* gas/mips/mips16-f.d: New file.
* gas/mips/mips16-f.s: New file.
* gas/mips/mips.exp: Add empic, mips16-e. Add mips16-f as an
expected failure.
In include/elf:
* mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
numbers.
the errors exposed by this addition. These were intel mode
"fi... word ptr", "fi... dword ptr", "jmp Imm seg, Imm offset", "out dx,al".
The failure with intel "out dx,al" was also present in att "out al,dx".
Extend testsuite to catch this case too.
* gas/i386/general.{s,l}: Move 16 bit jmp and call tests from here
* gas/i386/jump16.{s,d}: To here.
* gas/i386/jump.{s,d}: New files. Duplicate 32 bit jmp and call
tests in general.s so that objdump is exercised.
* gas/i386/i386.exp: Call new tests.
indeterminate number of extra lines here".
* gas/elf/elf.exp: Remove XFAILs.
* gas/elf/section0.d: Make pass on MIPS (and hopefully alpha).
* gas/elf/section1.d: Likewise.
* gas/mips/elf-rel.d: New file.
* gas/mips/elf-rel2.d: New file.
* gas/mips/e32-rel2.d: New file.
* gas/mips/elf-rel2.s: New file.
* gas/mips/mips.exp: Add elf-rel, elf-rel2.
* gas/mips/elf_e_flags1.d: Tweak a little so it passes
even if the CPU is set to something by default.
* gas/m32r/m32rx.exp: New testcase driver.
* gas/m32r/fslotx.[sd]: New testcase.
* gas/m32r/m32rx.[sd]: New testcase.
* gas/m32r/relax-s.[sd]: New testcase.
* gas/m32r/interfere.s: New testcase.
* gas/m32r/wrongsize.s: New testcase.
previously disabled for lack of such support. For *-*-linux*libc1 targets,
XFAIL a ld testsuite that fails due to a bug in the dynamic linker prior to
glibc-2.1.
sectioning.
* gas/hppa/parse/parse.exp: Disable tests not appropriate for PA64.
Revamp address expressions slightly to handle an arbitrary sized
address.
Add new syntax versions of instructions to tests.
* gas/hppa/basic/add2.s,dcor2.s,perf.s,purge2.s,shladd2.s,sub2.s,
system2.s, unit2.s: New tests.
* hppa/basic/basic.exp: Add new tests.
* gas/mips/elf_e_flags.s: Tweak code so that the tests pass for
mips-elf target as well as mips64-elf target.
* gas/mips/elf_e_flags1.d: Corresponding changes.
* gas/mips/elf_e_flags2.d: Likewise.
* gas/mips/elf_e_flags3.d: Likewise.
* gas/mips/elf_e_flags4.d: Likewise.
* gas/elf/elf.exp: Add setup_xfail for mips*-*-*.
* gas/all/itbl-test.c (main): Update itbl_get_reg_val call for new
parameter.
* gas/sparc/synth64.s: Add checks for single register signx/clruw.
* gas/sparc/set64.s: Add tests for setuw and setsw synthetic insns.
* gas/sparc/prefetch.d: Add -64 as switch.
* gas/sparc/rdpr.d: Ditto.
* gas/sparc/wrpr.d: Ditto.
* gas/sparc/synth64.d: Ditto, reflect synth64.s changes.
* gas/sparc/reloc64.d: Add -64 as switch, be more tolerant, as
current gas outputs %hi(0) and not %hi(0x0).
* gas/sparc/set64.d: Add -64 as switch, reflect set64.s changes and
optimizations for setx instruction.
* gas/sparc/sparc.exp: Do sparc64*-*-* checks if it is any of the
compiled-in targets.
Add missing files from last change in gas/testsuite.
i386-dis.c: Catch a number of cases where an invalid modrm would result in
bogus disassembly. const lots of places.