From 86efdb05d85bcaede4e5af49b93fd0ee5642d98f Mon Sep 17 00:00:00 2001 From: Andrew Bennett Date: Fri, 29 Aug 2014 16:57:55 +0100 Subject: Add missing mtc1, mthc1, mfhc1 instructions to Ingenic's MXU patch. Change-Id: Ib83ffec3512b8306458d6ea608f730d08f5b1c10 --- binutils-2.24/gas/testsuite/gas/mips/mxu.d | 6 ++++++ binutils-2.24/gas/testsuite/gas/mips/mxu.s | 6 ++++++ binutils-2.24/opcodes/mips-opc.c | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/binutils-2.24/gas/testsuite/gas/mips/mxu.d b/binutils-2.24/gas/testsuite/gas/mips/mxu.d index 926ddaf..99b34ba 100644 --- a/binutils-2.24/gas/testsuite/gas/mips/mxu.d +++ b/binutils-2.24/gas/testsuite/gas/mips/mxu.d @@ -8,6 +8,12 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> 44021002 mfc1 v0,\$f2 [0-9a-f]+ <[^>]*> 44020802 mfc1 v0,\$f1 +[0-9a-f]+ <[^>]*> 44821002 mtc1 v0,\$f2 +[0-9a-f]+ <[^>]*> 44820802 mtc1 v0,\$f1 +[0-9a-f]+ <[^>]*> 44621002 mfhc1 v0,\$f2 +[0-9a-f]+ <[^>]*> 44621002 mfhc1 v0,\$f2 +[0-9a-f]+ <[^>]*> 44e21002 mthc1 v0,\$f2 +[0-9a-f]+ <[^>]*> 44e21002 mthc1 v0,\$f2 [0-9a-f]+ <[^>]*> 7010c84a d16mac xr1,xr2,xr3,xr4,AA,WW [0-9a-f]+ <[^>]*> 7050c84a d16mac xr1,xr2,xr3,xr4,AA,LW [0-9a-f]+ <[^>]*> 7090c84a d16mac xr1,xr2,xr3,xr4,AA,HW diff --git a/binutils-2.24/gas/testsuite/gas/mips/mxu.s b/binutils-2.24/gas/testsuite/gas/mips/mxu.s index 8b56264..fd06e61 100644 --- a/binutils-2.24/gas/testsuite/gas/mips/mxu.s +++ b/binutils-2.24/gas/testsuite/gas/mips/mxu.s @@ -106,6 +106,12 @@ test_mxu: .endm mfc1 $2, $2 mfc1 $2, $f1 + mtc1 $2, $2 + mtc1 $2, $f1 + mfhc1 $2, $2 + mfhc1 $2, $f2 + mthc1 $2, $2 + mthc1 $2, $f2 test1 d16mac test1 d16macf test1 d16madl diff --git a/binutils-2.24/opcodes/mips-opc.c b/binutils-2.24/opcodes/mips-opc.c index 3a1302f..74ebae2 100644 --- a/binutils-2.24/opcodes/mips-opc.c +++ b/binutils-2.24/opcodes/mips-opc.c @@ -1444,6 +1444,8 @@ const struct mips_opcode mips_builtin_opcodes[] = {"mfc1", "t,G", 0x44000002, 0xffe007ff, WR_1|RD_2|LCD|FP_S|F32M,0, 0, MXU, 0 }, {"mfc1", "t,S", 0x44000000, 0xffe007ff, WR_1|RD_2|LCD|FP_S|F32M,0, I1, 0, 0 }, {"mfc1", "t,G", 0x44000000, 0xffe007ff, WR_1|RD_2|LCD|FP_S|F32M,0, I1, 0, 0 }, +{"mfhc1", "t,S", 0x44600002, 0xffe007ff, WR_1|RD_2|LCD|FP_D, 0, 0, MXU, 0 }, +{"mfhc1", "t,G", 0x44600002, 0xffe007ff, WR_1|RD_2|LCD|FP_D, 0, 0, MXU, 0 }, {"mfhc1", "t,S", 0x44600000, 0xffe007ff, WR_1|RD_2|LCD|FP_D, 0, I33, 0, 0 }, {"mfhc1", "t,G", 0x44600000, 0xffe007ff, WR_1|RD_2|LCD|FP_D, 0, I33, 0, 0 }, /* mfc2 is at the bottom of the table. */ @@ -1540,8 +1542,12 @@ const struct mips_opcode mips_builtin_opcodes[] = {"mthc0", "t,G,H", 0x40c00000, 0xffe007f8, RD_1|WR_C0|WR_CC|COD, 0, I33, XPA, 0 }, {"mthgc0", "t,G", 0x40600600, 0xffe007ff, RD_1|WR_C0|WR_CC|COD, 0, I33, IVIRT|XPA, 0 }, {"mthgc0", "t,G,H", 0x40600600, 0xffe007f8, RD_1|WR_C0|WR_CC|COD, 0, I33, IVIRT|XPA, 0 }, +{"mtc1", "t,S", 0x44800002, 0xffe007ff, RD_1|WR_2|COD|FP_S|F32M,0, 0, MXU, 0 }, +{"mtc1", "t,G", 0x44800002, 0xffe007ff, RD_1|WR_2|COD|FP_S|F32M,0, 0, MXU, 0 }, {"mtc1", "t,S", 0x44800000, 0xffe007ff, RD_1|WR_2|COD|FP_S|F32M,0, I1, 0, 0 }, {"mtc1", "t,G", 0x44800000, 0xffe007ff, RD_1|WR_2|COD|FP_S|F32M,0, I1, 0, 0 }, +{"mthc1", "t,S", 0x44e00002, 0xffe007ff, RD_1|WR_2|COD|FP_D, 0, 0, MXU, 0 }, +{"mthc1", "t,G", 0x44e00002, 0xffe007ff, RD_1|WR_2|COD|FP_D, 0, 0, MXU, 0 }, {"mthc1", "t,S", 0x44e00000, 0xffe007ff, RD_1|WR_2|COD|FP_D, 0, I33, 0, 0 }, {"mthc1", "t,G", 0x44e00000, 0xffe007ff, RD_1|WR_2|COD|FP_D, 0, I33, 0, 0 }, /* mtc2 is at the bottom of the table. */ -- cgit v1.1