[parisc-linux-cvs] linux-2.6 grundler

Grant Grundler grundler@parisc-linux.org
Wed, 24 Sep 2003 23:22:51 -0600


On Wed, Sep 24, 2003 at 11:19:36PM -0600, Grant Grundler wrote:
> Log message:
> 2.6.0-test5-pa20 replace bb,n/depi sequence with nullification
> 
> thanks to lamont for the implementation.
> Same as what was committed to 2.4.22.

I confess to building but not testing this on 2.6.
GDB doesn't like to run on 64-bit and only a500/64-bit
is working with 2.6 (for me).


Index: Makefile
===================================================================
RCS file: /var/cvs/linux-2.6/Makefile,v
retrieving revision 1.56
diff -u -p -r1.56 Makefile
--- Makefile	25 Sep 2003 01:07:21 -0000	1.56
+++ Makefile	25 Sep 2003 05:17:33 -0000
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 0
-EXTRAVERSION = -test5-pa19
+EXTRAVERSION = -test5-pa20
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
Index: arch/parisc/kernel/entry.S
===================================================================
RCS file: /var/cvs/linux-2.6/arch/parisc/kernel/entry.S,v
retrieving revision 1.4
diff -u -p -r1.4 entry.S
--- arch/parisc/kernel/entry.S	21 Sep 2003 14:33:58 -0000	1.4
+++ arch/parisc/kernel/entry.S	25 Sep 2003 05:17:33 -0000
@@ -2343,15 +2343,19 @@ syscall_restore_rfi:
 	LDREG	TASK_PT_PSW(%r1),%r2		   /* Get old PSW */
 	ldi	0x0b,%r20			   /* Create new PSW */
 	depi	-1,13,1,%r20			   /* C, Q, D, and I bits */
+
 	/* The values of PA_SINGLESTEP_BIT and PA_BLOCKSTEP_BIT are
 	 * set in include/linux/ptrace.h and converted to PA bitmap
 	 * numbers in asm-offsets.c */
-	bb,>=,n	%r19,PA_SINGLESTEP_BIT,try_tbit
+
+	/* if ((%r19.PA_SINGLESTEP_BIT)) { %r20.27=1} */
+	extru,=	%r19,PA_SINGLESTEP_BIT,1,%r0
 	depi	-1,27,1,%r20			   /* R bit */
-try_tbit:
-	bb,>=,n	%r19,PA_BLOCKSTEP_BIT,psw_setup
+
+	/* if ((%r19.PA_BLOCKSTEP_BIT)) { %r20.7=1} */
+	extru,= %r19,PA_BLOCKSTEP_BIT,1,%r0
 	depi	-1,7,1,%r20			   /* T bit */
-psw_setup:
+
 	STREG	%r20,TASK_PT_PSW(%r1)
 
 	/* Always store space registers, since sr3 can be changed (e.g. fork) */