--- binutils/opcodes/arm-opc.h.orig 2004-01-09 13:53:16.000000000 +0200 +++ binutils/opcodes/arm-opc.h 2004-02-06 09:49:48.000000000 +0200 @@ -506,18 +506,18 @@ {0x0e100510, 0x0ff00fff, "cfmvr64l%c\t%12-15r, mvdx%16-19d"}, {0x0e000530, 0x0ff00fff, "cfmv64hr%c\tmvdx%16-19d, %12-15r"}, {0x0e100530, 0x0ff00fff, "cfmvr64h%c\t%12-15r, mvdx%16-19d"}, - {0x0e100610, 0x0ff0fff0, "cfmval32%c\tmvax%0-3d, mvfx%16-19d"}, - {0x0e000610, 0x0ff0fff0, "cfmv32al%c\tmvfx%0-3d, mvax%16-19d"}, - {0x0e100630, 0x0ff0fff0, "cfmvam32%c\tmvax%0-3d, mvfx%16-19d"}, - {0x0e000630, 0x0ff0fff0, "cfmv32am%c\tmvfx%0-3d, mvax%16-19d"}, - {0x0e100650, 0x0ff0fff0, "cfmvah32%c\tmvax%0-3d, mvfx%16-19d"}, - {0x0e000650, 0x0ff0fff0, "cfmv32ah%c\tmvfx%0-3d, mvax%16-19d"}, - {0x0e000670, 0x0ff0fff0, "cfmv32a%c\tmvfx%0-3d, mvax%16-19d"}, - {0x0e100670, 0x0ff0fff0, "cfmva32%c\tmvax%0-3d, mvfx%16-19d"}, - {0x0e000690, 0x0ff0fff0, "cfmv64a%c\tmvdx%0-3d, mvax%16-19d"}, - {0x0e100690, 0x0ff0fff0, "cfmva64%c\tmvax%0-3d, mvdx%16-19d"}, - {0x0e1006b0, 0x0ff0fff0, "cfmvsc32%c\tdspsc, mvfx%16-19d"}, - {0x0e0006b0, 0x0ff0fff0, "cfmv32sc%c\tmvfx%0-3d, dspsc"}, + {0x0e200440, 0x0ff00fff, "cfmval32%c\tmvax%12-15d, mvfx%16-19d"}, + {0x0e100440, 0x0ff00fff, "cfmv32al%c\tmvfx%12-15d, mvax%16-19d"}, + {0x0e200460, 0x0ff00fff, "cfmvam32%c\tmvax%12-15d, mvfx%16-19d"}, + {0x0e100460, 0x0ff00fff, "cfmv32am%c\tmvfx%12-15d, mvax%16-19d"}, + {0x0e200480, 0x0ff00fff, "cfmvah32%c\tmvax%12-15d, mvfx%16-19d"}, + {0x0e100480, 0x0ff00fff, "cfmv32ah%c\tmvfx%12-15d, mvax%16-19d"}, + {0x0e2004a0, 0x0ff00fff, "cfmva32%c\tmvax%12-15d, mvfx%16-19d"}, + {0x0e1004a0, 0x0ff00fff, "cfmv32a%c\tmvfx%12-15d, mvax%16-19d"}, + {0x0e2004c0, 0x0ff00fff, "cfmva64%c\tmvax%12-15d, mvdx%16-19d"}, + {0x0e1004c0, 0x0ff00fff, "cfmv64a%c\tmvdx%12-15d, mvax%16-19d"}, + {0x0e2004e0, 0x0fff0fff, "cfmvsc32%c\tdspsc, mvdx%12-15d"}, + {0x0e1004e0, 0x0fff0fff, "cfmv32sc%c\tmvdx%12-15d, dspsc"}, {0x0e000400, 0x0ff00fff, "cfcpys%c\tmvf%12-15d, mvf%16-19d"}, {0x0e000420, 0x0ff00fff, "cfcpyd%c\tmvd%12-15d, mvd%16-19d"}, {0x0e000460, 0x0ff00fff, "cfcvtsd%c\tmvd%12-15d, mvf%16-19d"}, --- binutils/gas/config/tc-arm.c.orig 2004-01-23 18:29:34.000000000 +0200 +++ binutils/gas/config/tc-arm.c 2004-02-05 17:32:04.000000000 +0200 @@ -4,6 +4,8 @@ Contributed by Richard Earnshaw (address@hidden) Modified by David Taylor (address@hidden) Cirrus coprocessor mods by Aldy Hernandez (address@hidden) + Cirrus coprocessor fixes by Petko Manolov (address@hidden) + Cirrus coprocessor fixes by Vladimir Ivanov (address@hidden) This file is part of GAS, the GNU Assembler. @@ -1111,8 +1113,8 @@ /* "INSN X,Y" where X:bit16, Y:bit12. */ #define MAV_MODE2 0x0c10 -/* "INSN X,Y" where X:0, Y:bit16. */ -#define MAV_MODE3 0x1000 +/* "INSN X,Y" where X:bit12, Y:bit16. */ +#define MAV_MODE3 0x100c /* "INSN X,Y,Z" where X:16, Y:0, Z:12. */ #define MAV_MODE4 0x0c0010 @@ -2175,18 +2177,18 @@ {"cfmvr64l", 0xee100510, 8, ARM_CEXT_MAVERICK, do_mav_binops_1c}, {"cfmv64hr", 0xee000530, 8, ARM_CEXT_MAVERICK, do_mav_binops_2c}, {"cfmvr64h", 0xee100530, 8, ARM_CEXT_MAVERICK, do_mav_binops_1c}, - {"cfmval32", 0xee100610, 8, ARM_CEXT_MAVERICK, do_mav_binops_3a}, - {"cfmv32al", 0xee000610, 8, ARM_CEXT_MAVERICK, do_mav_binops_3b}, - {"cfmvam32", 0xee100630, 8, ARM_CEXT_MAVERICK, do_mav_binops_3a}, - {"cfmv32am", 0xee000630, 8, ARM_CEXT_MAVERICK, do_mav_binops_3b}, - {"cfmvah32", 0xee100650, 8, ARM_CEXT_MAVERICK, do_mav_binops_3a}, - {"cfmv32ah", 0xee000650, 8, ARM_CEXT_MAVERICK, do_mav_binops_3b}, - {"cfmva32", 0xee100670, 7, ARM_CEXT_MAVERICK, do_mav_binops_3a}, - {"cfmv32a", 0xee000670, 7, ARM_CEXT_MAVERICK, do_mav_binops_3b}, - {"cfmva64", 0xee100690, 7, ARM_CEXT_MAVERICK, do_mav_binops_3c}, - {"cfmv64a", 0xee000690, 7, ARM_CEXT_MAVERICK, do_mav_binops_3d}, - {"cfmvsc32", 0xee1006b0, 8, ARM_CEXT_MAVERICK, do_mav_dspsc_1}, - {"cfmv32sc", 0xee0006b0, 8, ARM_CEXT_MAVERICK, do_mav_dspsc_2}, + {"cfmval32", 0xee200440, 8, ARM_CEXT_MAVERICK, do_mav_binops_3a}, + {"cfmv32al", 0xee100440, 8, ARM_CEXT_MAVERICK, do_mav_binops_3b}, + {"cfmvam32", 0xee200460, 8, ARM_CEXT_MAVERICK, do_mav_binops_3a}, + {"cfmv32am", 0xee100460, 8, ARM_CEXT_MAVERICK, do_mav_binops_3b}, + {"cfmvah32", 0xee200480, 8, ARM_CEXT_MAVERICK, do_mav_binops_3a}, + {"cfmv32ah", 0xee100480, 8, ARM_CEXT_MAVERICK, do_mav_binops_3b}, + {"cfmva32", 0xee2004a0, 7, ARM_CEXT_MAVERICK, do_mav_binops_3a}, + {"cfmv32a", 0xee1004a0, 7, ARM_CEXT_MAVERICK, do_mav_binops_3b}, + {"cfmva64", 0xee2004c0, 7, ARM_CEXT_MAVERICK, do_mav_binops_3c}, + {"cfmv64a", 0xee1004c0, 7, ARM_CEXT_MAVERICK, do_mav_binops_3d}, + {"cfmvsc32", 0xee2004e0, 8, ARM_CEXT_MAVERICK, do_mav_dspsc_1}, + {"cfmv32sc", 0xee1004e0, 8, ARM_CEXT_MAVERICK, do_mav_dspsc_2}, {"cfcpys", 0xee000400, 6, ARM_CEXT_MAVERICK, do_mav_binops_1d}, {"cfcpyd", 0xee000420, 6, ARM_CEXT_MAVERICK, do_mav_binops_1e}, {"cfcvtsd", 0xee000460, 7, ARM_CEXT_MAVERICK, do_mav_binops_1f}, @@ -10575,7 +10577,7 @@ REG_TYPE_MVFX); } -/* cfmvsc32 DSPSC,MVFX[15:0]. */ +/* cfmvsc32 DSPSC,MVDX[15:0]. */ static void do_mav_dspsc_1 (str) char * str; @@ -10585,7 +10587,7 @@ /* cfmvsc32. */ if (mav_reg_required_here (&str, -1, REG_TYPE_DSPSC) == FAIL || skip_past_comma (&str) == FAIL - || mav_reg_required_here (&str, 16, REG_TYPE_MVFX) == FAIL) + || mav_reg_required_here (&str, 12, REG_TYPE_MVDX) == FAIL) { if (!inst.error) inst.error = BAD_ARGS; @@ -10596,7 +10598,7 @@ end_of_line (str); } -/* cfmv32sc MVFX[15:0],DSPSC. */ +/* cfmv32sc MVDX[15:0],DSPSC. */ static void do_mav_dspsc_2 (str) char * str; @@ -10604,7 +10606,7 @@ skip_whitespace (str); /* cfmv32sc. */ - if (mav_reg_required_here (&str, 0, REG_TYPE_MVFX) == FAIL + if (mav_reg_required_here (&str, 12, REG_TYPE_MVDX) == FAIL || skip_past_comma (&str) == FAIL || mav_reg_required_here (&str, -1, REG_TYPE_DSPSC) == FAIL) { --- binutils/gas/ChangeLog.orig 2004-02-10 17:29:55.000000000 +0200 +++ binutils/gas/ChangeLog 2004-02-10 17:35:19.000000000 +0200 @@ -1,3 +1,9 @@ +2004-02-10 Petko Manolov + + * config/tc-arm.c (do_mav_dspsc_1): correct offset of CRn; + * config/tc-arm.c (do_mav_dspsc_2): likewise; + * config/tc-arm.c : fix accumulator registers move opcodes; + 2004-02-09 Daniel Jacobowitz * config/tc-arm.c (md_begin): Mark .note.gnu.arm.ident as --- binutils/opcodes/ChangeLog.orig 2004-02-10 17:37:28.000000000 +0200 +++ binutils/opcodes/ChangeLog 2004-02-10 17:40:01.000000000 +0200 @@ -1,3 +1,7 @@ +2004-02-10 Petko Manolov + + * arm-opc.h Maverick accumulator register opcode fixes; + 2004-01-27 Michael Snyder * sh-opc.h (sh_table): "fsrra", not "fssra". --- binutils/gas/testsuite/gas/arm/maverick.c.orig 2004-02-10 16:49:15.000000000 +0200 +++ binutils/gas/testsuite/gas/arm/maverick.c 2004-02-10 17:19:32.000000000 +0200 @@ -360,8 +360,8 @@ MVfxa (ah32, 32ah, 2); MVfxa (a32, 32a, 3); MVdxa (a64, 64a, 4); -MCRC2 (mvsc32, 6, 0, 1, 5, dspsc, mvreg ("fx", 16)); -MCRC2 (mv32sc, 6, 0, 0, 5, mvreg ("fx", 0), dspsc); +MCRC2 (mvsc32, 4, 1, 0, 7, dspsc, mvreg ("dx", 12)); +MCRC2 (mv32sc, 4, 0, 1, 7, mvreg ("dx", 12), dspsc); CDP2 (cpys, , 4, 0, 0, "f", "f"); CDP2 (cpyd, , 4, 0, 1, "d", "d"); --- binutils/gas/testsuite/gas/arm/maverick.d.orig 2004-02-10 17:05:41.000000000 +0200 +++ binutils/gas/testsuite/gas/arm/maverick.d 2004-02-10 17:24:30.000000000 +0200 @@ -229,16 +229,16 @@ 0*364 ee ?02 ?06 ?9a ? * cfmv64a mvdx10, ?mvax2 0*368 4e ?03 ?06 ?9e ? * cfmv64ami mvdx14, ?mvax3 0*36c 8e ?02 ?06 ?9d ? * cfmv64ahi mvdx13, ?mvax2 -0*370 2e ?1c ?06 ?b0 ? * cfmvsc32cs dspsc, ?mvfx12 -0*374 6e ?10 ?06 ?b0 ? * cfmvsc32vs dspsc, ?mvfx0 -0*378 7e ?1e ?06 ?b0 ? * cfmvsc32vc dspsc, ?mvfx14 -0*37c 3e ?1a ?06 ?b0 ? * cfmvsc32cc dspsc, ?mvfx10 -0*380 1e ?1f ?06 ?b0 ? * cfmvsc32ne dspsc, ?mvfx15 -0*384 de ?00 ?06 ?b6 ? * cfmv32scle mvfx6, ?dspsc -0*388 4e ?00 ?06 ?b2 ? * cfmv32scmi mvfx2, ?dspsc -0*38c 0e ?00 ?06 ?b5 ? * cfmv32sceq mvfx5, ?dspsc -0*390 ae ?00 ?06 ?b9 ? * cfmv32scge mvfx9, ?dspsc -0*394 ee ?00 ?06 ?b3 ? * cfmv32sc mvfx3, ?dspsc +0*370 2e ?20 ?c4 ?f0 ? * cfmvsc32cs dspsc, ?mvdx12 +0*374 6e ?20 ?04 ?f0 ? * cfmvsc32vs dspsc, ?mvdx0 +0*378 7e ?20 ?e4 ?f0 ? * cfmvsc32vc dspsc, ?mvdx14 +0*37c 3e ?20 ?a4 ?f0 ? * cfmvsc32cc dspsc, ?mvdx10 +0*380 1e ?20 ?f4 ?f0 ? * cfmvsc32ne dspsc, ?mvdx15 +0*384 de ?10 ?64 ?f0 ? * cfmv32scle mvdx6, ?dspsc +0*388 4e ?10 ?24 ?f0 ? * cfmv32scmi mvdx2, ?dspsc +0*38c 0e ?10 ?54 ?f0 ? * cfmv32sceq mvdx5, ?dspsc +0*390 ae ?10 ?94 ?f0 ? * cfmv32scge mvdx9, ?dspsc +0*394 ee ?10 ?34 ?f0 ? * cfmv32sc mvdx3, ?dspsc 0*398 de ?02 ?74 ?00 ? * cfcpysle mvf7, ?mvf2 0*39c 1e ?06 ?c4 ?00 ? * cfcpysne mvf12, ?mvf6 0*3a0 be ?07 ?04 ?00 ? * cfcpyslt mvf0, ?mvf7 --- binutils/gas/testsuite/gas/arm/maverick.s.orig 2004-02-10 17:05:49.000000000 +0200 +++ binutils/gas/testsuite/gas/arm/maverick.s 2004-02-10 17:24:30.000000000 +0200 @@ -222,16 +222,16 @@ cfmv64a mvdx10, mvax2 cfmv64ami mvdx14, mvax3 cfmv64ahi mvdx13, mvax2 - cfmvsc32cs dspsc, mvfx12 - cfmvsc32vs dspsc, mvfx0 - cfmvsc32vc dspsc, mvfx14 - cfmvsc32cc dspsc, mvfx10 - cfmvsc32ne dspsc, mvfx15 - cfmv32scle mvfx6, dspsc - cfmv32scmi mvfx2, dspsc - cfmv32sceq mvfx5, dspsc - cfmv32scge mvfx9, dspsc - cfmv32scal mvfx3, dspsc + cfmvsc32cs dspsc, mvdx12 + cfmvsc32vs dspsc, mvdx0 + cfmvsc32vc dspsc, mvdx14 + cfmvsc32cc dspsc, mvdx10 + cfmvsc32ne dspsc, mvdx15 + cfmv32scle mvdx6, dspsc + cfmv32scmi mvdx2, dspsc + cfmv32sceq mvdx5, dspsc + cfmv32scge mvdx9, dspsc + cfmv32scal mvdx3, dspsc cfcpysle mvf7, mvf2 cfcpysne mvf12, mvf6 cfcpyslt mvf0, mvf7 --- binutils/gas/testsuite/ChangeLog.orig 2004-02-10 17:41:32.000000000 +0200 +++ binutils/gas/testsuite/ChangeLog 2004-02-10 17:43:44.000000000 +0200 @@ -1,3 +1,9 @@ +2004-02-10 Petko Manolov + + * gas/arm/maverick.c: DSPSC to/from opcode fixes. + * gas/arm/maverick.d: likewise. + * gas/arm/maverick.s: likewise. + 2004-02-09 Kaz Kojima * gas/sh/basic.exp: Don't do sh4a tests for sh5.