[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Add flags for powerpc in order to avoid exceptions
From: |
Andrei Borzenkov |
Subject: |
Re: [PATCH] Add flags for powerpc in order to avoid exceptions |
Date: |
Sat, 27 Sep 2014 09:06:53 +0400 |
В Fri, 26 Sep 2014 16:29:40 -0300
Paulo Flabiano Smorigo <address@hidden> пишет:
> * conf/Makefile.common [COND_powerpc_ieee1275] (CFLAGS_PLATFORM): Add
> -msoft-float -mno-vsx -mno-altivec.
>
> Also-By: Adhemerval Zanella <address@hidden>
> ---
> 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 <address@hidden>
> +
> + 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 <address@hidden>
>
> 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