This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]