* [PATCH] Add flags for powerpc in order to avoid exceptions @ 2014-09-26 19:29 Paulo Flabiano Smorigo 2014-09-27 5:06 ` Andrei Borzenkov 0 siblings, 1 reply; 6+ messages in thread From: Paulo Flabiano Smorigo @ 2014-09-26 19:29 UTC (permalink / raw) To: grub-devel * 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 -- 1.8.1.4 -- Paulo Flabiano Smorigo IBM Linux Technology Center ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] Add flags for powerpc in order to avoid exceptions 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 2014-09-29 18:30 ` Andrei Borzenkov 0 siblings, 1 reply; 6+ messages in thread From: Andrei Borzenkov @ 2014-09-27 5:06 UTC (permalink / raw) To: The development of GNU GRUB; +Cc: pfsmorigo В 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add flags for powerpc in order to avoid exceptions 2014-09-27 5:06 ` Andrei Borzenkov @ 2014-09-29 18:30 ` Andrei Borzenkov 2014-10-08 23:38 ` Paulo Flabiano Smorigo 0 siblings, 1 reply; 6+ messages in thread From: Andrei Borzenkov @ 2014-09-29 18:30 UTC (permalink / raw) To: pfsmorigo; +Cc: The development of GNU GRUB, azanella В Sat, 27 Sep 2014 09:06:53 +0400 Andrei Borzenkov <arvidjaar@gmail.com> пишет: > В 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. I looked at compiler options for PowerPC and I think instead of trying to catch individual flags which may change with every release we should simply force the most common platform by +if COND_powerpc_ieee1275 + CFLAGS_PLATFORM += -mcpu=powerpc -mtune=powerpc +endif This makes sure result is identical on every platform and provides most generic code that is expected to run on every(?) system. WDYT? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add flags for powerpc in order to avoid exceptions 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 0 siblings, 2 replies; 6+ messages in thread From: Paulo Flabiano Smorigo @ 2014-10-08 23:38 UTC (permalink / raw) To: The development of GNU GRUB Mon, Sep 29, 2014 at 10:30:16PM +0400, Andrei Borzenkov wrote: > В Sat, 27 Sep 2014 09:06:53 +0400 > Andrei Borzenkov <arvidjaar@gmail.com> пишет: > > > В 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. > > I looked at compiler options for PowerPC and I think instead of trying > to catch individual flags which may change with every release we should > simply force the most common platform by > > +if COND_powerpc_ieee1275 > + CFLAGS_PLATFORM += -mcpu=powerpc -mtune=powerpc > +endif > > > This makes sure result is identical on every platform and provides most > generic code that is expected to run on every(?) system. > > WDYT? Hi Andrei, Sorry to take so long to answer your question. After an internal discussion with some toolchain experts we found out that your approach is good. It works and it's more generic but we think that we should change it a little bit: * skip -mtune, not really necessary * add "-msoft-float" to be completly safe. Something like: +if COND_powerpc_ieee1275 + CFLAGS_PLATFORM += -mcpu=powerpc -msoft-float +endif This approach is similar to what the linux kernel do. In addition, they recomend to set FP MSR value to zero as well. Andrei, Vladimir, agree? > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel -- Paulo Flabiano Smorigo IBM Linux Technology Center ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add flags for powerpc in order to avoid exceptions 2014-10-08 23:38 ` Paulo Flabiano Smorigo @ 2014-10-10 16:43 ` Andrei Borzenkov 2014-11-28 19:30 ` Vladimir 'φ-coder/phcoder' Serbinenko 1 sibling, 0 replies; 6+ messages in thread From: Andrei Borzenkov @ 2014-10-10 16:43 UTC (permalink / raw) To: The development of GNU GRUB; +Cc: pfsmorigo В Wed, 8 Oct 2014 20:38:29 -0300 Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com> пишет: > Mon, Sep 29, 2014 at 10:30:16PM +0400, Andrei Borzenkov wrote: > > В Sat, 27 Sep 2014 09:06:53 +0400 > > Andrei Borzenkov <arvidjaar@gmail.com> пишет: > > > > > В 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. > > > > I looked at compiler options for PowerPC and I think instead of trying > > to catch individual flags which may change with every release we should > > simply force the most common platform by > > > > +if COND_powerpc_ieee1275 > > + CFLAGS_PLATFORM += -mcpu=powerpc -mtune=powerpc > > +endif > > > > > > This makes sure result is identical on every platform and provides most > > generic code that is expected to run on every(?) system. > > > > WDYT? > > Hi Andrei, > > Sorry to take so long to answer your question. > > After an internal discussion with some toolchain experts we found out > that your approach is good. It works and it's more generic but we think > that we should change it a little bit: > > * skip -mtune, not really necessary Fine if you say so. > * add "-msoft-float" to be completly safe. > Is it really necessary? I do not think grub is using floating point anywhere. > Something like: > > +if COND_powerpc_ieee1275 > + CFLAGS_PLATFORM += -mcpu=powerpc -msoft-float > +endif > Should not we also add -mbig-endian here, and not in configure? This is really something we always use, not something we need to detect dynamically. > This approach is similar to what the linux kernel do. > > In addition, they recomend to set FP MSR value to zero as well. > > Andrei, Vladimir, agree? > Could you resend your patches as discussed and rebased to git master, so they are easier to review and comment? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add flags for powerpc in order to avoid exceptions 2014-10-08 23:38 ` Paulo Flabiano Smorigo 2014-10-10 16:43 ` Andrei Borzenkov @ 2014-11-28 19:30 ` Vladimir 'φ-coder/phcoder' Serbinenko 1 sibling, 0 replies; 6+ messages in thread From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2014-11-28 19:30 UTC (permalink / raw) To: The development of GNU GRUB [-- Attachment #1: Type: text/plain, Size: 2932 bytes --] On 09.10.2014 02:38, Paulo Flabiano Smorigo wrote: > Mon, Sep 29, 2014 at 10:30:16PM +0400, Andrei Borzenkov wrote: >> В Sat, 27 Sep 2014 09:06:53 +0400 >> Andrei Borzenkov <arvidjaar@gmail.com> пишет: >> >>> В 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. >> >> I looked at compiler options for PowerPC and I think instead of trying >> to catch individual flags which may change with every release we should >> simply force the most common platform by >> >> +if COND_powerpc_ieee1275 >> + CFLAGS_PLATFORM += -mcpu=powerpc -mtune=powerpc >> +endif >> >> >> This makes sure result is identical on every platform and provides most >> generic code that is expected to run on every(?) system. >> >> WDYT? > > Hi Andrei, > > Sorry to take so long to answer your question. > > After an internal discussion with some toolchain experts we found out > that your approach is good. It works and it's more generic but we think > that we should change it a little bit: > > * skip -mtune, not really necessary > * add "-msoft-float" to be completly safe. > > Something like: > > +if COND_powerpc_ieee1275 > + CFLAGS_PLATFORM += -mcpu=powerpc -msoft-float > +endif > > This approach is similar to what the linux kernel do. Can you add -msoft-float to all archs? Other than that proposition looks good [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 213 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-11-28 20:53 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 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
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).