This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[committed] Remove PA lha opcodes
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: binutils at sources dot redhat dot com
- Date: Wed, 12 Oct 2005 22:36:39 -0400 (EDT)
- Subject: [committed] Remove PA lha opcodes
As discussed on the parisc-linux list
<http://lists.parisc-linux.org/pipermail/parisc-linux/2005-October/027446.html>,the lha opcode is only defined in PA 1.0 for processors that implement TLB
miss handling in hardware, and there are no such processors. Thus, it was
removed from PA 1.1 and later.
The lha and lci instructions share the same binary opcode. This causes
a conflict in disassembly. The simplest fix is to remove lha.
Tested on hppa-unknown-linux-gnu with no regressions.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2005-10-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* gas/hppa/basic/basic.exp (do_system): Adjust for removal of lha
instructions from system.s.
* gas/hppa/basic/system.s (lha): Remove.
* hppa.h (pa_opcodes): Remove lha entries.
Index: gas/testsuite/gas/hppa/basic/basic.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/hppa/basic/basic.exp,v
retrieving revision 1.10
diff -u -3 -p -r1.10 basic.exp
--- gas/testsuite/gas/hppa/basic/basic.exp 5 May 2005 09:13:12 -0000 1.10
+++ gas/testsuite/gas/hppa/basic/basic.exp 13 Oct 2005 01:27:58 -0000
@@ -2881,12 +2881,10 @@ proc do_system {} {
-re "^ +\[0-9\]+ 0048 04A41346\[^\n]*\n" { set x [expr $x+1] }
-re "^ +\[0-9\]+ 004c 04A41366\[^\n]*\n" { set x [expr $x+1] }
-re "^ +\[0-9\]+ 0050 04A41306\[^\n]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0054 04A41326\[^\n]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0058 04A41306\[^\n]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 005c 04A41040\[^\n]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0060 04A42040\[^\n]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0064 04A41000\[^\n]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0068 04A42000\[^\n]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0054 04A41040\[^\n]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0058 04A42040\[^\n]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 005c 04A41000\[^\n]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0060 04A42000\[^\n]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
@@ -2898,7 +2896,7 @@ proc do_system {} {
gas_finish
# Did we find what we were looking for? If not, flunk it.
- if [expr $x==27] then { pass $testname } else { fail $testname }
+ if [expr $x==25] then { pass $testname } else { fail $testname }
}
proc do_system2 {} {
Index: gas/testsuite/gas/hppa/basic/system.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/hppa/basic/system.s,v
retrieving revision 1.3
diff -u -3 -p -r1.3 system.s
--- gas/testsuite/gas/hppa/basic/system.s 19 Jul 2005 01:41:21 -0000 1.3
+++ gas/testsuite/gas/hppa/basic/system.s 13 Oct 2005 01:27:58 -0000
@@ -28,8 +28,6 @@
lpa %r4(%sr0,%r5),%r6
lpa,m %r4(%sr0,%r5),%r6
- lha %r4(%sr0,%r5),%r6
- lha,m %r4(%sr0,%r5),%r6
lci %r4(%sr0,%r5),%r6
idtlba %r4,(%sr0,%r5)
Index: include/opcode/hppa.h
===================================================================
RCS file: /cvs/src/src/include/opcode/hppa.h,v
retrieving revision 1.61
diff -u -3 -p -r1.61 hppa.h
--- include/opcode/hppa.h 8 Oct 2005 19:01:29 -0000 1.61
+++ include/opcode/hppa.h 13 Oct 2005 01:27:58 -0000
@@ -755,10 +755,8 @@ static const struct pa_opcode pa_opcodes
{ "probewi", 0x040031c0, 0xfc003fe0, "(s,b),R,t", pa10, 0},
{ "lpa", 0x04001340, 0xfc00ffc0, "cZx(b),t", pa10, 0},
{ "lpa", 0x04001340, 0xfc003fc0, "cZx(s,b),t", pa10, 0},
-{ "lha", 0x04001300, 0xfc00ffc0, "cZx(b),t", pa10, 0},
-{ "lha", 0x04001300, 0xfc003fc0, "cZx(s,b),t", pa10, 0},
-{ "lci", 0x04001300, 0xfc00ffe0, "x(b),t", pa10, 0},
-{ "lci", 0x04001300, 0xfc003fe0, "x(s,b),t", pa10, 0},
+{ "lci", 0x04001300, 0xfc00ffe0, "x(b),t", pa11, 0},
+{ "lci", 0x04001300, 0xfc003fe0, "x(s,b),t", pa11, 0},
{ "pdtlb", 0x04001600, 0xfc00ffdf, "cLcZx(b)", pa20, FLAG_STRICT},
{ "pdtlb", 0x04001600, 0xfc003fdf, "cLcZx(s,b)", pa20, FLAG_STRICT},
{ "pdtlb", 0x04001600, 0xfc1fffdf, "cLcZ@(b)", pa20, FLAG_STRICT},