aboutsummaryrefslogtreecommitdiff
path: root/gas
AgeCommit message (Collapse)AuthorFilesLines
2002-05-22 * config/tc-mips.c (macro): Relax warning, it's toot strict forThiemo Seufer2-1/+6
embedded-PIC.
2002-05-21? gas/testsuite/gas/mips/rol64.dThiemo Seufer6-16/+197
? gas/testsuite/gas/mips/rol64.s Index: gas/ChangeLog =================================================================== RCS file: /cvs/src/src/gas/ChangeLog,v retrieving revision 1.1334 diff -u -p -r1.1334 ChangeLog --- gas/ChangeLog 21 May 2002 20:01:51 -0000 1.1334 +++ gas/ChangeLog 21 May 2002 23:32:51 -0000 @@ -1,3 +1,8 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * config/tc-mips.c (macro2): Add 64 bit drol, dror macros. + Optimize the rotate by zero case. + 2002-05-21 Nick Clifton <nickc@cambridge.redhat.com> * configure.in: Remove accidental enabling of bfd_gas=yes for Index: gas/config/tc-mips.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-mips.c,v retrieving revision 1.123 diff -u -p -r1.123 tc-mips.c --- gas/config/tc-mips.c 14 May 2002 23:35:59 -0000 1.123 +++ gas/config/tc-mips.c 21 May 2002 23:32:52 -0000 @@ -6686,6 +6686,17 @@ macro2 (ip) --mips_opts.noreorder; break; + case M_DROL: + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsubu", + "d,v,t", AT, 0, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrlv", + "d,t,s", AT, sreg, AT); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsllv", + "d,t,s", dreg, sreg, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + break; + case M_ROL: macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "subu", "d,v,t", AT, 0, treg); @@ -6697,15 +6708,55 @@ macro2 (ip) "d,v,t", dreg, dreg, AT); break; + case M_DROL_I: + { + unsigned int rot; + char *l, *r; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x3f; + if (! rot) + break; + l = (rot < 0x20) ? "dsll" : "dsll32"; + r = ((0x40 - rot) < 0x20) ? "dsrl" : "dsrl32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } + break; + case M_ROL_I: - if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", "d,w,<", - AT, sreg, (int) (imm_expr.X_add_number & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", "d,w,<", - dreg, sreg, (int) ((0 - imm_expr.X_add_number) & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", "d,v,t", - dreg, dreg, AT); + { + unsigned int rot; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x1f; + if (! rot) + break; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } + break; + + case M_DROR: + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsubu", + "d,v,t", AT, 0, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsllv", + "d,t,s", AT, sreg, AT); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrlv", + "d,t,s", dreg, sreg, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); break; case M_ROR: @@ -6719,15 +6770,44 @@ macro2 (ip) "d,v,t", dreg, dreg, AT); break; + case M_DROR_I: + { + unsigned int rot; + char *l, *r; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x3f; + if (! rot) + break; + r = (rot < 0x20) ? "dsrl" : "dsrl32"; + l = ((0x40 - rot) < 0x20) ? "dsll" : "dsll32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } + break; + case M_ROR_I: - if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", "d,w,<", - AT, sreg, (int) (imm_expr.X_add_number & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", "d,w,<", - dreg, sreg, (int) ((0 - imm_expr.X_add_number) & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", "d,v,t", - dreg, dreg, AT); + { + unsigned int rot; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x1f; + if (! rot) + break; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } break; case M_S_DOB: Index: gas/testsuite/ChangeLog =================================================================== RCS file: /cvs/src/src/gas/testsuite/ChangeLog,v retrieving revision 1.315 diff -u -p -r1.315 ChangeLog --- gas/testsuite/ChangeLog 20 May 2002 17:05:34 -0000 1.315 +++ gas/testsuite/ChangeLog 21 May 2002 23:32:54 -0000 @@ -1,3 +1,9 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * gas/mips/rol64.s: New file, test of drol, dror macros. + * gas/mips/rol64.d: Likewise. + * gas/mips/mips.exp: Add new test. + 2002-05-20 Nick Clifton <nickc@cambridge.redhat.com> * gas/arm/arm.exp: Replace deprecated command line switches Index: gas/testsuite/gas/mips/mips.exp =================================================================== RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips.exp,v retrieving revision 1.32 diff -u -p -r1.32 mips.exp --- gas/testsuite/gas/mips/mips.exp 4 Apr 2002 08:23:30 -0000 1.32 +++ gas/testsuite/gas/mips/mips.exp 21 May 2002 23:32:54 -0000 @@ -122,6 +122,7 @@ if { [istarget mips*-*-*] } then { run_dump_test "mul" } run_dump_test "rol" + run_dump_test "rol64" if !$aout { run_dump_test "sb" } run_dump_test "trunc" if !$aout { run_dump_test "ulh" } Index: include/opcode/ChangeLog =================================================================== RCS file: /cvs/src/src/include/opcode/ChangeLog,v retrieving revision 1.167 diff -u -p -r1.167 ChangeLog --- include/opcode/ChangeLog 17 May 2002 19:01:03 -0000 1.167 +++ include/opcode/ChangeLog 21 May 2002 23:32:57 -0000 @@ -1,3 +1,7 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * mips.h: Add M_DROL, M_DROL_I, M_DROR, M_DROR_I macro cases. + 2002-05-17 Andrey Volkov <avolkov@sources.redhat.com> * h8300.h: Corrected defs of all control regs Index: include/opcode/mips.h =================================================================== RCS file: /cvs/src/src/include/opcode/mips.h,v retrieving revision 1.24 diff -u -p -r1.24 mips.h --- include/opcode/mips.h 16 Mar 2002 03:09:18 -0000 1.24 +++ include/opcode/mips.h 21 May 2002 23:32:57 -0000 @@ -526,9 +526,13 @@ enum M_REM_3I, M_REMU_3, M_REMU_3I, + M_DROL, M_ROL, + M_DROL_I, M_ROL_I, + M_DROR, M_ROR, + M_DROR_I, M_ROR_I, M_S_DA, M_S_DOB, Index: opcodes/ChangeLog =================================================================== RCS file: /cvs/src/src/opcodes/ChangeLog,v retrieving revision 1.447 diff -u -p -r1.447 ChangeLog --- opcodes/ChangeLog 17 May 2002 14:36:45 -0000 1.447 +++ opcodes/ChangeLog 21 May 2002 23:33:00 -0000 @@ -1,3 +1,7 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * mips-opc.c (mips_builtin_opcodes): Add drol, dror macros. + Fri May 17 14:26:44 2002 J"orn Rennecke <joern.rennecke@superh.com> * disassemble.c (disassembler): Just use print_insn_sh for bfd_arch_sh. Index: opcodes/mips-opc.c =================================================================== RCS file: /cvs/src/src/opcodes/mips-opc.c,v retrieving revision 1.32 diff -u -p -r1.32 mips-opc.c --- opcodes/mips-opc.c 17 Mar 2002 02:42:25 -0000 1.32 +++ opcodes/mips-opc.c 21 May 2002 23:33:00 -0000 @@ -492,6 +492,10 @@ const struct mips_opcode mips_builtin_op {"dremu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HILO, I3 }, {"dremu", "d,v,t", 3, (int) M_DREMU_3, INSN_MACRO, I3 }, {"dremu", "d,v,I", 3, (int) M_DREMU_3I, INSN_MACRO, I3 }, +{"drol", "d,v,t", 0, (int) M_DROL, INSN_MACRO, I3 }, +{"drol", "d,v,I", 0, (int) M_DROL_I, INSN_MACRO, I3 }, +{"dror", "d,v,t", 0, (int) M_DROR, INSN_MACRO, I3 }, +{"dror", "d,v,I", 0, (int) M_DROR_I, INSN_MACRO, I3 }, {"dsllv", "d,t,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, {"dsll32", "d,w,<", 0x0000003c, 0xffe0003f, WR_d|RD_t, I3 }, {"dsll", "d,w,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, /* dsllv */
2002-05-21Remove accidental enabling of bfd_gas=yes for sh-coff targets.Nick Clifton3-4/+10
2002-05-20Replace deprecated command line switches with their modern equivalents.Nick Clifton10-14/+27
2002-05-18 * app.c: Fix formatting.Kazu Hirata10-61/+73
* as.c: Likewise. * ehopt.c: Likewise. * expr.c: Likewise. * input-file.c: Likewise. * listing.c: Likewise. * macro.h: Likewise. * stabs.c: Likewise. * symbols.c: Likewise.
2002-05-17Remove stale files.Alan Modra3-120/+5
2002-05-16 * config/tc-avr.c (mcu_types): Update for new devices.Marek Michalkiewicz2-2/+9
2002-05-14 * config/tc-mips.c (macro): Warn about wrong la/dla use.Thiemo Seufer2-0/+10
2002-05-14 * config/tc_mips.c (s_cpsetup): Fix completely bogus code which hadThiemo Seufer2-11/+13
worked sometimes by accident. Fix copy&paste comment.
2002-05-14 * config/tc-mips.c (md_begin): Fix .reginfo and .MIPS.option sectionThiemo Seufer2-6/+12
alignment for NewABI. Let n32 use .reginfo. Remove useless casts. (mips_elf_final_processing): Let n32 use .reginfo.
2002-05-14 * config/tc-mips.c (append_insn): Fix too small range of variable.Thiemo Seufer2-1/+5
2002-05-14Remove redundant call to listing_prev_lineNick Clifton2-1/+5
2002-05-13Remove redundant call to listing_prev().Nick Clifton2-1/+3
2002-05-13Do not reset loc_directive_seen in dwarf2_emit_insn.Nick Clifton2-9/+14
2002-05-13Fix grammatical error.Nick Clifton2-1/+6
2002-05-13 * gas/i386/x86-64-opcode.s: Pad out end of .text with zeros.Alan Modra3-3/+8
* gas/i386/x86-64-opcode.d: Adjust.
2002-05-13 * write.c (subsegs_finish): Don't specially align last subseg.Alan Modra2-6/+4
2002-05-11Warn about a description field that is too big.Nick Clifton2-0/+11
2002-05-11Fix formatting and compile tine warnings when compiling without BFD_ASSEMBLERNick Clifton2-314/+259
defined.
2002-05-11Define md_pcrel_from for use with sh-hms target.Nick Clifton2-4/+20
2002-05-11Use the 'current' struct filled by dwarf2_directive_loc, instead of callingNick Clifton2-1/+11
dwarf2_where.
2002-05-11 * config/obj-coff.h: Fix formatting.Kazu Hirata14-140/+156
* config/tc-mcore.c: Likewise. * config/tc-mn10300.c: Likewise. * config/tc-openrisc.c: Likewise. * config/tc-or32.c: Likewise. * config/tc-pdp11.c: Likewise. * config/tc-ppc.c: Likewise. * config/tc-ppc.h: Likewise. * config/tc-sh64.c: Likewise. * config/tc-sh.c: Likewise. * config/tc-tic54x.c: Likewise. * config/tc-xstormy16.c: Likewise. * config/tc-xstormy16.h: Likewise.
2002-05-09 * config/obj-coff.c: Fix formatting.Kazu Hirata9-130/+141
* config/obj-elf.c: Likewise. * config/tc-alpha.c: Likewise. * config/tc-arm.c: Likewise. * config/tc-d10v.c: Likewise. * config/tc-d30v.c: Likewise. * config/tc-h8300.c: Likewise. * config/tc-hppa.c: Likewise.
2002-05-09 * config/tc-i386.c (md_estimate_size_before_relax) Don't loseAlan Modra2-7/+16
reloc when no_cond_jump_promotion.
2002-05-09Fix i960-elf abort in cvt_frag_to_fill while compiling libc/stdio/vfprintf.c.Jim Wilson2-1/+7
* config/tc-i960.c (md_estimate_size_before_relax): Return size of current variable part of frag.
2002-05-09 * config/tc-mmix.c: Fix formatting.Kazu Hirata3-129/+137
* config/tc-mmix.h: Likewise.
2002-05-08 * configure: Regenerate.Alan Modra2-6973/+3118
2002-05-08 * config/tc-m68k.c: Fix formatting.Kazu Hirata2-47/+54
2002-05-07Honour DESTDIRNick Clifton3-13/+18
2002-05-06 * config/tc-ia64.c: Fix formatting.Kazu Hirata3-61/+67
* config/tc-ia64.h: Likewise.
2002-05-04 * config/tc-mips.c: Fix formatting.Kazu Hirata4-199/+207
* config/tc-s390.c: Likewise. * config/tc-s390.h: Likewise.
2002-05-03* config/tc-s390.c (md_gather_operands): Emit dwarf2 line-numberAlexandre Oliva2-0/+6
information for instructions.
2002-05-03 * as.h: Fix formatting.Kazu Hirata11-43/+56
* cgen.c: Likewise. * cgen.h: Likewise. * dwarf2dbg.c: Likewise. * frags.h: Likewise. * gasp.c: Likewise. * macro.c: Likewise. * read.c: Likewise. * stabs.c: Likewise. * symbols.c: Likewise.
2002-05-02 * app.c (mri_pseudo): Only declare for TC_M68K.Alan Modra2-3/+5
2002-05-02 * config/tc-ppc.c (mapping): Map sectoff to BFD_RELOC_16_BASEREL.Alan Modra2-4/+12
(ppc_elf_validate_fix): Replace BFD_RELOC_32_BASEREL with BFD_RELOC_16_BASEREL. (md_assemble): Likewise. (md_apply_fix3): Likewise.
2002-05-02Do not convert a subtract of zero into an add of zero.Nick Clifton5-3/+26
2002-05-01Generate warning if the same destination register is used in parallelNick Clifton2-0/+26
instructions.
2002-05-01 * config/tc-i386.c (extra_symbol_chars): Add '[' to the list.Alan Modra2-2/+6
2002-05-01 * write.c (cvt_frag_to_fill): Set fr_offset to zero on .orgAlan Modra2-0/+6
backwards to prevent cascading errors.
2002-04-30 * configure.in: Add support for powerpc-*-windiss.Mark Mitchell3-3114/+6980
* configure: Regenerated.
2002-04-28 * config/tc-s390.c (md_parse_option): Formatting.Alan Modra2-2/+4
2002-04-28 * config/tc-i386.c: Formatting fixes, add missing space in errorAlan Modra2-14/+20
message.
2002-04-25The patch contains mostly fixes for the disassembler. It also fixesNick Clifton2-9/+23
a crash of the assembler with some malformed source input. Long segmented addresses are now correctly relocated. Finally it updates my email address in the MAINTAINERS file.
2002-04-242002-04-24 Chris G. Demetriou <cgd@broadcom.com>Chris Demetriou2-4/+8
* config/tc-mips.c (macro_build): Do _not_ allow MIPS-3D instructions to be generated by macros.
2002-04-24 * config/tc-i386.c (output_jump, output_disp)Andreas Schwab2-29/+44
(md_estimate_size_before_relax): Don't set fx_pcrel_adjust any more. (md_apply_fix3): Remember addend value for rela relocations. (tc_gen_reloc): Correctly compute pc-relative relocation addend.
2002-04-232002-04-23 H.J. Lu <hjl@gnu.org>H.J. Lu4-0/+9
* gas/mips/elempic.d: Use empic.l. * gas/mips/telempic.d: Likewise. * gas/mips/tempic.d: Likewise.
2002-04-232002-04-23 H.J. Lu <hjl@gnu.org>H.J. Lu2-2/+10
* gas/hppa/parse/parse.exp: Don't expect failure on line separator test on hppa*-*-linux* nor hppa*-*-netbsd*.
2002-04-222002-04-22 Chris Demetriou <cgd@broadcom.com>Chris Demetriou5-0/+19
* gas/mips/mips-gp64-fp32.l: New file. * gas/mips/mips-gp64-fp32.d: Use mips-gp64-fp32.l to check stderr output. * gas/mips/mips-gp64-fp64.l: New file. * gas/mips/mips-gp64-fp64.d: Use mips-gp64-fp64.l to check stderr output.
2002-04-222002-04-22 Chris Demetriou <cgd@broadcom.com>Chris Demetriou2-3/+8
* config/tc-mips.c (macro_build): Add close-parenthesis missing from previous change. (also, fix ChangeLog entry for previous patch.)
2002-04-222002-04-22 Eric Christopher <echristo@redhat.com>Eric Christopher2-3/+20
* config/tc-mips.c: Add warning if macro instructions are expanded into a branch delay slot.