grub-devel.gnu.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).