[committed] Remove PA lha opcodes

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[committed] Remove PA lha opcodes

John David Anglin-4
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                                  [hidden email]
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

2005-10-12  John David Anglin  <[hidden email]>

        * 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},