summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/binutils/files/0011-77625f8c77d14a67bc542bb790e6f826c725de4c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/binutils/files/0011-77625f8c77d14a67bc542bb790e6f826c725de4c.patch')
-rw-r--r--recipes-devtools/binutils/files/0011-77625f8c77d14a67bc542bb790e6f826c725de4c.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/recipes-devtools/binutils/files/0011-77625f8c77d14a67bc542bb790e6f826c725de4c.patch b/recipes-devtools/binutils/files/0011-77625f8c77d14a67bc542bb790e6f826c725de4c.patch
new file mode 100644
index 00000000..60205e53
--- /dev/null
+++ b/recipes-devtools/binutils/files/0011-77625f8c77d14a67bc542bb790e6f826c725de4c.patch
@@ -0,0 +1,89 @@
1From 77625f8c77d14a67bc542bb790e6f826c725de4c Mon Sep 17 00:00:00 2001
2From: Michael Eager <eager@eagercon.com>
3Date: Thu, 29 Nov 2012 21:08:59 +0000
4Subject: opcodes/Changelog: * microblaze-opc.h: Rename
5 INST_TYPE_RD_R1_SPECIAL to INST_TYPE_R1_R2_SPECIAL *
6 microblaze-dis.c (print_insn_microblaze): Same. gas/Changelog *
7 gas/config/tc-microblaze.c: Rename INST_TYPE_RD_R1_SPECIAL to
8 INST_TYPE_R1_R2_SPECIAL, don't set RD for wic.
9
10Upstream-Status: Backport
11
12diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c
13index 5a427a0..e9c7846 100644
14--- a/gas/config/tc-microblaze.c
15+++ b/gas/config/tc-microblaze.c
16@@ -1358,16 +1358,16 @@ md_assemble (char * str)
17 output = frag_more (isize);
18 break;
19
20- case INST_TYPE_RD_R1_SPECIAL:
21+ case INST_TYPE_R1_R2_SPECIAL:
22 if (strcmp (op_end, ""))
23- op_end = parse_reg (op_end + 1, &reg1); /* Get rd. */
24+ op_end = parse_reg (op_end + 1, &reg1); /* Get r1. */
25 else
26 {
27 as_fatal (_("Error in statement syntax"));
28 reg1 = 0;
29 }
30 if (strcmp (op_end, ""))
31- op_end = parse_reg (op_end + 1, &reg2); /* Get r1. */
32+ op_end = parse_reg (op_end + 1, &reg2); /* Get r2. */
33 else
34 {
35 as_fatal (_("Error in statement syntax"));
36@@ -1381,7 +1381,6 @@ md_assemble (char * str)
37 as_fatal (_("Cannot use special register with this instruction"));
38
39 /* insn wic ra, rb => wic ra, ra, rb. */
40- inst |= (reg1 << RD_LOW) & RD_MASK;
41 inst |= (reg1 << RA_LOW) & RA_MASK;
42 inst |= (reg2 << RB_LOW) & RB_MASK;
43
44diff --git a/opcodes/microblaze-dis.c b/opcodes/microblaze-dis.c
45index 7e3a546..bf028c4 100644
46--- a/opcodes/microblaze-dis.c
47+++ b/opcodes/microblaze-dis.c
48@@ -383,8 +383,8 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info)
49 case INST_TYPE_R1:
50 print_func (stream, "\t%s", get_field_r1 (inst));
51 break;
52- case INST_TYPE_RD_R1_SPECIAL:
53- print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_r2 (inst));
54+ case INST_TYPE_R1_R2_SPECIAL:
55+ print_func (stream, "\t%s, %s", get_field_r1 (inst), get_field_r2 (inst));
56 break;
57 case INST_TYPE_RD_IMM15:
58 print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_imm15 (inst));
59diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h
60index 404985b..e9da12a 100644
61--- a/opcodes/microblaze-opc.h
62+++ b/opcodes/microblaze-opc.h
63@@ -45,7 +45,7 @@
64 #define INST_TYPE_R1_RFSL 15
65
66 /* New insn type for insn cache. */
67-#define INST_TYPE_RD_R1_SPECIAL 16
68+#define INST_TYPE_R1_R2_SPECIAL 16
69
70 /* New insn type for msrclr, msrset insns. */
71 #define INST_TYPE_RD_IMM15 17
72@@ -171,10 +171,10 @@ struct op_code_struct
73 {"srl", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000041, OPCODE_MASK_H34, srl, logical_inst },
74 {"sext8", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000060, OPCODE_MASK_H34, sext8, logical_inst },
75 {"sext16",INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000061, OPCODE_MASK_H34, sext16, logical_inst },
76- {"wic", INST_TYPE_RD_R1_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000068, OPCODE_MASK_H34B, wic, special_inst },
77- {"wdc", INST_TYPE_RD_R1_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000064, OPCODE_MASK_H34B, wdc, special_inst },
78- {"wdc.clear", INST_TYPE_RD_R1_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000066, OPCODE_MASK_H34B, wdcclear, special_inst },
79- {"wdc.flush", INST_TYPE_RD_R1_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000074, OPCODE_MASK_H34B, wdcflush, special_inst },
80+ {"wic", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000068, OPCODE_MASK_H34B, wic, special_inst },
81+ {"wdc", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000064, OPCODE_MASK_H34B, wdc, special_inst },
82+ {"wdc.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000066, OPCODE_MASK_H34B, wdcclear, special_inst },
83+ {"wdc.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000074, OPCODE_MASK_H34B, wdcflush, special_inst },
84 {"mts", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9400C000, OPCODE_MASK_H13S, mts, special_inst },
85 {"mfs", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94008000, OPCODE_MASK_H23S, mfs, special_inst },
86 {"br", INST_TYPE_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98000000, OPCODE_MASK_H124, br, branch_inst },
87--
881.7.5.4
89