All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrei Borzenkov <arvidjaar@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Cc: pfsmorigo@linux.vnet.ibm.com
Subject: Re: [PATCH] Add flags for powerpc in order to avoid exceptions
Date: Sat, 27 Sep 2014 09:06:53 +0400	[thread overview]
Message-ID: <20140927090653.062225be@opensuse.site> (raw)
In-Reply-To: <20140926192936.GA30134@beren.chocolate>

В Fri, 26 Sep 2014 16:29:40 -0300
Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com> пишет:

> * conf/Makefile.common [COND_powerpc_ieee1275] (CFLAGS_PLATFORM): Add
> -msoft-float -mno-vsx -mno-altivec.
> 
> Also-By: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
> ---
>  ChangeLog            | 7 +++++++
>  conf/Makefile.common | 3 +++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/ChangeLog b/ChangeLog
> index 192e8bc..40eb90c 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,10 @@
> +2014-09-26  Paulo Flabiano Smorigo  <pfsmorigo@linux.vnet.ibm.com>
> +
> +	Add flags for powerpc in order to avoid exceptions
> +
> +	* conf/Makefile.common [COND_powerpc_ieee1275] (CFLAGS_PLATFORM): Add
> +	-msoft-float -mno-vsx -mno-altivec.
> +
>  2014-09-25  Colin Watson  <cjwatson@ubuntu.com>
>  
>  	Fix in-tree --platform=none
> diff --git a/conf/Makefile.common b/conf/Makefile.common
> index 51fbaf9..57c491a 100644
> --- a/conf/Makefile.common
> +++ b/conf/Makefile.common
> @@ -22,6 +22,9 @@ endif
>  if COND_arm64
>    CFLAGS_PLATFORM += -mcmodel=large
>  endif
> +if COND_powerpc_ieee1275
> +  CFLAGS_PLATFORM += -msoft-float -mno-vsx -mno-altivec
> +endif
>  
>  #FIXME: discover and check XEN headers
>  CPPFLAGS_XEN = -I/usr/include

Thank you! I confirm that this patch works and does not break grub on
earlier CPU :)

There are still differences in generated code, so we probably need to
tune some more flags. Here is difference between ppc64 and ppc64le:

-usr.ppc64/lib/grub2/powerpc-ieee1275/kernel.img:     file format elf32-powerpc
+usr.ppc64le/lib/grub2/powerpc-ieee1275/kernel.img:     file format elf32-powerpc
 
 
 Disassembly of section .text:
@@ -1389,7 +1389,7 @@ Disassembly of section .text:
   201594:	38 e0 00 00 	li      r7,0
   201598:	48 00 02 11 	bl      0x2017a8
   20159c:	2f 83 00 00 	cmpwi   cr7,r3,0
-  2015a0:	41 bc 00 64 	blt     cr7,0x201604
+  2015a0:	41 fc 00 64 	blt+    cr7,0x201604
   2015a4:	4b ff ff c0 	b       0x201564
   2015a8:	3c 80 00 21 	lis     r4,33
   2015ac:	7f e3 fb 78 	mr      r3,r31
@@ -2769,7 +2769,7 @@ Disassembly of section .text:
   202b24:	48 00 80 75 	bl      0x20ab98
   202b28:	81 81 00 30 	lwz     r12,48(r1)
   202b2c:	39 61 00 40 	addi    r11,r1,64
-  202b30:	7d 80 81 20 	mtcrf   8,r12
+  202b30:	7d 90 81 20 	mtocrf  8,r12
   202b34:	4b ff d8 3c 	b       0x200370
   202b38:	94 21 ff 90 	stwu    r1,-112(r1)
   202b3c:	7c 08 02 a6 	mflr    r0
@@ -3387,7 +3387,7 @@ Disassembly of section .text:
   2034cc:	7c 7d f8 ae 	lbzx    r3,r29,r31
   2034d0:	48 00 74 5d 	bl      0x20a92c
   2034d4:	2f 83 00 00 	cmpwi   cr7,r3,0
-  2034d8:	41 9e 00 0c 	beq     cr7,0x2034e4
+  2034d8:	41 de 00 0c 	beq-    cr7,0x2034e4
   2034dc:	3b ff 00 01 	addi    r31,r31,1
   2034e0:	4b ff ff ec 	b       0x2034cc
   2034e4:	38 80 00 3d 	li      r4,61
@@ -3603,9 +3603,9 @@ Disassembly of section .text:
   20382c:	7d 3e 52 14 	add     r9,r30,r10
   203830:	7f 9e 40 40 	cmplw   cr7,r30,r8
   203834:	7c 6a 1b 78 	mr      r10,r3
-  203838:	41 9d 00 0c 	bgt     cr7,0x203844
+  203838:	41 dd 00 0c 	bgt-    cr7,0x203844
   20383c:	2f 9e ff ff 	cmpwi   cr7,r30,-1
-  203840:	40 be 00 1c 	bne     cr7,0x20385c
+  203840:	40 fe 00 1c 	bne+    cr7,0x20385c
   203844:	39 40 00 01 	li      r10,1
   203848:	48 00 00 14 	b       0x20385c
   20384c:	89 09 00 00 	lbz     r8,0(r9)
@@ -5519,14 +5519,14 @@ Disassembly of section .text:
   20561c:	7c 7d 1b 78 	mr      r29,r3
   205620:	4b ff f5 6d 	bl      0x204b8c
   205624:	7f 83 e8 00 	cmpw    cr7,r3,r29
-  205628:	7c 60 00 26 	mfcr    r3
+  205628:	7c 70 10 26 	mfocrf  r3,1
   20562c:	54 63 ef fe 	rlwinm  r3,r3,29,31,31
   205630:	4b ff fe e4 	b       0x205514
   205634:	4b ff f5 59 	bl      0x204b8c
   205638:	7c 7d 1b 78 	mr      r29,r3
   20563c:	4b ff f5 51 	bl      0x204b8c
   205640:	7f 83 e8 00 	cmpw    cr7,r3,r29
-  205644:	7c 60 00 26 	mfcr    r3
+  205644:	7c 70 10 26 	mfocrf  r3,1
   205648:	54 63 f7 fe 	rlwinm  r3,r3,30,31,31
   20564c:	4b ff fe c8 	b       0x205514
   205650:	4b ff f5 3d 	bl      0x204b8c
@@ -5722,7 +5722,7 @@ Disassembly of section .text:
   205948:	7f 07 c3 78 	mr      r7,r24
   20594c:	48 00 12 99 	bl      0x206be4
   205950:	2c 03 00 00 	cmpwi   r3,0
-  205954:	40 a2 00 10 	bne     0x205964
+  205954:	40 e2 00 10 	bne+    0x205964
   205958:	7f e3 fb 78 	mr      r3,r31
   20595c:	48 00 0e 99 	bl      0x2067f4
   205960:	48 00 00 2c 	b       0x20598c
@@ -5765,7 +5765,7 @@ Disassembly of section .text:
   2059f4:	38 63 00 18 	addi    r3,r3,24
   2059f8:	4b ff ff e4 	b       0x2059dc
   2059fc:	2f 83 00 00 	cmpwi   cr7,r3,0
-  205a00:	4c be 00 20 	bclr+   4,4*cr7+eq
+  205a00:	4c fe 00 20 	bnelr+  cr7
   205a04:	2b 84 00 68 	cmplwi  cr7,r4,104
   205a08:	41 9e 00 24 	beq     cr7,0x205a2c
   205a0c:	2b 84 00 75 	cmplwi  cr7,r4,117
@@ -6022,12 +6022,12 @@ Disassembly of section .text:
   205df8:	39 29 d9 a8 	addi    r9,r9,-9816
   205dfc:	7f 84 48 00 	cmpw    cr7,r4,r9
   205e00:	90 01 00 14 	stw     r0,20(r1)
-  205e04:	40 be 00 0c 	bne     cr7,0x205e10
+  205e04:	40 fe 00 0c 	bne+    cr7,0x205e10
   205e08:	4b ff ff 1d 	bl      0x205d24
   205e0c:	48 00 00 14 	b       0x205e20
   205e10:	39 29 00 18 	addi    r9,r9,24
   205e14:	7f 84 48 00 	cmpw    cr7,r4,r9
-  205e18:	40 be 00 10 	bne     cr7,0x205e28
+  205e18:	40 fe 00 10 	bne+    cr7,0x205e28
   205e1c:	4b ff fe 99 	bl      0x205cb4
   205e20:	38 60 ff ff 	li      r3,-1
   205e24:	48 00 00 70 	b       0x205e94
@@ -6213,7 +6213,7 @@ Disassembly of section .text:
   2060f4:	7e a5 ab 78 	mr      r5,r21
   2060f8:	4b ff fa bd 	bl      0x205bb4
   2060fc:	7c 7e 1b 79 	mr.     r30,r3
-  206100:	41 a2 ff d8 	beq     0x2060d8
+  206100:	41 c2 ff d8 	beq-    0x2060d8
   206104:	2f 1d 00 00 	cmpwi   cr6,r29,0
   206108:	2f 9e 00 00 	cmpwi   cr7,r30,0
   20610c:	40 9a 00 3c 	bne     cr6,0x206148
@@ -6442,7 +6442,7 @@ Disassembly of section .text:
   206488:	7c 08 02 a6 	mflr    r0
   20648c:	70 6a 00 0f 	andi.   r10,r3,15
   206490:	90 01 00 14 	stw     r0,20(r1)
-  206494:	41 a2 00 10 	beq     0x2064a4
+  206494:	41 e2 00 10 	beq+    0x2064a4
   206498:	3c 60 00 21 	lis     r3,33
   20649c:	38 63 db 20 	addi    r3,r3,-9440
   2064a0:	48 00 00 50 	b       0x2064f0
@@ -6496,7 +6496,7 @@ Disassembly of section .text:
   206560:	90 01 00 54 	stw     r0,84(r1)
   206564:	3a b5 00 01 	addi    r21,r21,1
   206568:	2f 89 00 00 	cmpwi   cr7,r9,0
-  20656c:	41 9e 02 20 	beq     cr7,0x20678c
+  20656c:	41 de 02 20 	beq-    cr7,0x20678c
   206570:	54 74 e1 3f 	rlwinm. r20,r3,28,4,31
   206574:	40 82 00 08 	bne     0x20657c
   206578:	3a 80 00 01 	li      r20,1
@@ -6528,13 +6528,13 @@ Disassembly of section .text:
   2065e0:	7f ff b8 10 	subfc   r31,r31,r23
   2065e4:	7f de b1 10 	subfe   r30,r30,r22
   2065e8:	2f 84 00 00 	cmpwi   cr7,r4,0
-  2065ec:	40 be 00 10 	bne     cr7,0x2065fc
+  2065ec:	40 fe 00 10 	bne+    cr7,0x2065fc
   2065f0:	3c 60 00 21 	lis     r3,33
   2065f4:	38 63 db 80 	addi    r3,r3,-9344
   2065f8:	48 00 57 79 	bl      0x20bd70
   2065fc:	80 a4 00 08 	lwz     r5,8(r4)
   206600:	7f 85 90 00 	cmpw    cr7,r5,r18
-  206604:	41 be 00 10 	beq     cr7,0x206614
+  206604:	41 fe 00 10 	beq+    cr7,0x206614
   206608:	3c 60 00 21 	lis     r3,33
   20660c:	38 63 db 91 	addi    r3,r3,-9327
   206610:	48 00 57 61 	bl      0x20bd70
@@ -6687,7 +6687,7 @@ Disassembly of section .text:
   20685c:	41 9d 00 ac 	bgt     cr7,0x206908
   206860:	80 a4 00 08 	lwz     r5,8(r4)
   206864:	7f 85 38 00 	cmpw    cr7,r5,r7
-  206868:	41 be 00 10 	beq     cr7,0x206878
+  206868:	41 fe 00 10 	beq+    cr7,0x206878
   20686c:	3c 60 00 21 	lis     r3,33
   206870:	38 63 db 91 	addi    r3,r3,-9327
   206874:	48 00 54 fd 	bl      0x20bd70
@@ -6976,7 +6976,7 @@ Disassembly of section .text:
   206ce0:	38 60 00 00 	li      r3,0
   206ce4:	81 81 00 14 	lwz     r12,20(r1)
   206ce8:	39 61 00 30 	addi    r11,r1,48
-  206cec:	7d 80 81 20 	mtcrf   8,r12
+  206cec:	7d 90 81 20 	mtocrf  8,r12
   206cf0:	4b ff 96 74 	b       0x200364
   206cf4:	94 21 ff f0 	stwu    r1,-16(r1)
   206cf8:	7c 08 02 a6 	mflr    r0
@@ -7308,7 +7308,7 @@ Disassembly of section .text:
   207210:	48 00 20 3d 	bl      0x20924c
   207214:	7f e5 fb 78 	mr      r5,r31
   207218:	7c 7e 1b 79 	mr.     r30,r3
-  20721c:	41 82 00 10 	beq     0x20722c
+  20721c:	41 c2 00 10 	beq-    0x20722c
   207220:	89 3e 00 00 	lbz     r9,0(r30)
   207224:	2f 89 00 00 	cmpwi   cr7,r9,0
   207228:	40 9e 00 1c 	bne     cr7,0x207244
@@ -7763,7 +7763,7 @@ Disassembly of section .text:
   20792c:	4b ff ee c9 	bl      0x2067f4
   207930:	48 00 00 0c 	b       0x20793c
   207934:	2f 9d 00 00 	cmpwi   cr7,r29,0
-  207938:	40 be 00 40 	bne     cr7,0x207978
+  207938:	40 fe 00 40 	bne+    cr7,0x207978
   20793c:	81 39 00 20 	lwz     r9,32(r25)
   207940:	3b a0 00 00 	li      r29,0
   207944:	2f 89 00 00 	cmpwi   cr7,r9,0
@@ -7961,7 +7961,7 @@ Disassembly of section .text:
   207c44:	38 84 dd 49 	addi    r4,r4,-8887
   207c48:	48 00 18 55 	bl      0x20949c
   207c4c:	2f 9d 00 00 	cmpwi   cr7,r29,0
-  207c50:	41 9e 00 14 	beq     cr7,0x207c64
+  207c50:	41 de 00 14 	beq-    cr7,0x207c64
   207c54:	7f 9d f0 40 	cmplw   cr7,r29,r30
   207c58:	41 9e 00 0c 	beq     cr7,0x207c64
   207c5c:	7f a3 eb 78 	mr      r3,r29
@@ -8745,7 +8745,7 @@ Disassembly of section .text:
   208884:	2f 88 00 00 	cmpwi   cr7,r8,0
   208888:	7d 5f 52 14 	add     r10,r31,r10
   20888c:	39 28 00 01 	addi    r9,r8,1
-  208890:	40 be 00 3c 	bne     cr7,0x2088cc
+  208890:	40 fe 00 3c 	bne+    cr7,0x2088cc
   208894:	39 20 00 01 	li      r9,1
   208898:	48 00 00 34 	b       0x2088cc
   20889c:	81 0a 00 20 	lwz     r8,32(r10)
@@ -8857,7 +8857,7 @@ Disassembly of section .text:
   208a44:	2f 87 00 00 	cmpwi   cr7,r7,0
   208a48:	7d 3f 4a 14 	add     r9,r31,r9
   208a4c:	39 47 00 01 	addi    r10,r7,1
-  208a50:	40 be 00 24 	bne     cr7,0x208a74
+  208a50:	40 fe 00 24 	bne+    cr7,0x208a74
   208a54:	39 40 00 01 	li      r10,1
   208a58:	48 00 00 1c 	b       0x208a74
   208a5c:	80 c9 00 04 	lwz     r6,4(r9)
@@ -9792,7 +9792,7 @@ Disassembly of section .text:
   2098e0:	38 80 00 29 	li      r4,41
   2098e4:	48 00 10 01 	bl      0x20a8e4
   2098e8:	2c 03 00 00 	cmpwi   r3,0
-  2098ec:	41 a2 ff e8 	beq     0x2098d4
+  2098ec:	41 c2 ff e8 	beq-    0x2098d4
   2098f0:	3b 83 00 01 	addi    r28,r3,1
   2098f4:	7f e3 fb 78 	mr      r3,r31
   2098f8:	4b ff d8 f5 	bl      0x2071ec
@@ -10444,7 +10444,7 @@ Disassembly of section .text:
   20a310:	38 84 ff f8 	addi    r4,r4,-8
   20a314:	4b ff eb 55 	bl      0x208e68
   20a318:	2f 83 00 00 	cmpwi   cr7,r3,0
-  20a31c:	40 be 00 18 	bne     cr7,0x20a334
+  20a31c:	40 fe 00 18 	bne+    cr7,0x20a334
   20a320:	3c 60 00 21 	lis     r3,33
   20a324:	3c 80 00 21 	lis     r4,33
   20a328:	38 63 d2 f2 	addi    r3,r3,-11534
@@ -10536,7 +10536,7 @@ Disassembly of section .text:
   20a480:	48 00 07 19 	bl      0x20ab98
   20a484:	35 3d 00 01 	addic.  r9,r29,1
   20a488:	7c 7f 1b 78 	mr      r31,r3
-  20a48c:	41 82 00 08 	beq     0x20a494
+  20a48c:	41 c2 00 08 	beq-    0x20a494
   20a490:	7d 3e 4b 78 	mr      r30,r9
   20a494:	89 3e 00 00 	lbz     r9,0(r30)
   20a498:	3b a0 00 00 	li      r29,0
@@ -10546,7 +10546,7 @@ Disassembly of section .text:
   20a4a8:	48 00 06 a1 	bl      0x20ab48
   20a4ac:	7c 7d 1b 78 	mr      r29,r3
   20a4b0:	2f 9f 00 00 	cmpwi   cr7,r31,0
-  20a4b4:	40 be 00 18 	bne     cr7,0x20a4cc
+  20a4b4:	40 fe 00 18 	bne+    cr7,0x20a4cc
   20a4b8:	48 00 00 08 	b       0x20a4c0
   20a4bc:	3b a0 00 00 	li      r29,0
   20a4c0:	83 e1 00 0c 	lwz     r31,12(r1)
@@ -10589,7 +10589,7 @@ Disassembly of section .text:
   20a554:	2f 83 00 00 	cmpwi   cr7,r3,0
   20a558:	7c 69 1b 78 	mr      r9,r3
   20a55c:	7c 6a 1b 78 	mr      r10,r3
-  20a560:	40 be 00 28 	bne     cr7,0x20a588
+  20a560:	40 fe 00 28 	bne+    cr7,0x20a588
   20a564:	39 40 00 01 	li      r10,1
   20a568:	48 00 00 20 	b       0x20a588
   20a56c:	80 61 00 08 	lwz     r3,8(r1)
@@ -11237,7 +11237,7 @@ Disassembly of section .text:
   20af74:	89 49 00 01 	lbz     r10,1(r9)
   20af78:	39 09 00 02 	addi    r8,r9,2
   20af7c:	2b 8a 00 6c 	cmplwi  cr7,r10,108
-  20af80:	40 9e 00 0c 	bne     cr7,0x20af8c
+  20af80:	40 de 00 0c 	bne-    cr7,0x20af8c
   20af84:	89 49 00 02 	lbz     r10,2(r9)
   20af88:	39 09 00 03 	addi    r8,r9,3
   20af8c:	2b 8a 00 70 	cmplwi  cr7,r10,112
@@ -11337,7 +11337,7 @@ Disassembly of section .text:
   20b104:	48 00 00 28 	b       0x20b12c
   20b108:	89 3e 00 01 	lbz     r9,1(r30)
   20b10c:	2b 89 00 6c 	cmplwi  cr7,r9,108
-  20b110:	41 be 00 10 	beq     cr7,0x20b120
+  20b110:	41 fe 00 10 	beq+    cr7,0x20b120
   20b114:	3b 9e 00 02 	addi    r28,r30,2
   20b118:	39 40 00 01 	li      r10,1
   20b11c:	48 00 00 10 	b       0x20b12c
@@ -11563,7 +11563,7 @@ Disassembly of section .text:
   20b48c:	91 21 00 30 	stw     r9,48(r1)
   20b490:	89 2a 00 01 	lbz     r9,1(r10)
   20b494:	2b 89 00 6c 	cmplwi  cr7,r9,108
-  20b498:	40 9e 00 10 	bne     cr7,0x20b4a8
+  20b498:	40 de 00 10 	bne-    cr7,0x20b4a8
   20b49c:	39 2a 00 03 	addi    r9,r10,3
   20b4a0:	91 21 00 30 	stw     r9,48(r1)
   20b4a4:	89 2a 00 02 	lbz     r9,2(r10)
@@ -11659,7 +11659,7 @@ Disassembly of section .text:
   20b60c:	3b ff 00 01 	addi    r31,r31,1
   20b610:	39 00 ff 80 	li      r8,-128
   20b614:	39 29 00 01 	addi    r9,r9,1
-  20b618:	40 bc 00 2c 	bge     cr7,0x20b644
+  20b618:	40 fc 00 2c 	bge+    cr7,0x20b644
   20b61c:	39 20 00 01 	li      r9,1
   20b620:	48 00 00 24 	b       0x20b644
   20b624:	7f 9f e8 40 	cmplw   cr7,r31,r29
@@ -12450,7 +12450,7 @@ Disassembly of section .text:
   20c268:	38 60 00 00 	li      r3,0
   20c26c:	81 81 04 e8 	lwz     r12,1256(r1)
   20c270:	39 61 05 10 	addi    r11,r1,1296
-  20c274:	7d 80 81 20 	mtcrf   8,r12
+  20c274:	7d 90 81 20 	mtocrf  8,r12
   20c278:	4b ff 40 e0 	b       0x200358
   20c27c:	94 21 ff d0 	stwu    r1,-48(r1)
   20c280:	7c 08 02 a6 	mflr    r0


  reply	other threads:[~2014-09-27  5:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-26 19:29 [PATCH] Add flags for powerpc in order to avoid exceptions Paulo Flabiano Smorigo
2014-09-27  5:06 ` Andrei Borzenkov [this message]
2014-09-29 18:30   ` Andrei Borzenkov
2014-10-08 23:38     ` Paulo Flabiano Smorigo
2014-10-10 16:43       ` Andrei Borzenkov
2014-11-28 19:30       ` Vladimir 'φ-coder/phcoder' Serbinenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140927090653.062225be@opensuse.site \
    --to=arvidjaar@gmail.com \
    --cc=grub-devel@gnu.org \
    --cc=pfsmorigo@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.