From 81e3c93069e38039c6368df09dd5e8971e76ed43 Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Wed, 3 Oct 2018 14:15:49 -0500 Subject: [PATCH] Numerous changes to relocations in chapter 3. Signed-off-by: Bill Schmidt --- specification/bk_main.xml | 13 +- specification/ch_3.xml | 308 +++++++++++++++++++++++++++++++++----- 2 files changed, 286 insertions(+), 35 deletions(-) diff --git a/specification/bk_main.xml b/specification/bk_main.xml index 39dc4f5..a018706 100644 --- a/specification/bk_main.xml +++ b/specification/bk_main.xml @@ -57,7 +57,7 @@ Freescale Semiconductor, Inc - Revision 1.5f draft + Revision 1.5g draft OpenPOWER @@ -93,6 +93,17 @@ + + 2018-10-02 + + + + Revision 1.5g: PC-relative addressing seventh + draft. + + + + 2018-07-20 diff --git a/specification/ch_3.xml b/specification/ch_3.xml index 70f4dab..d8de312 100644 --- a/specification/ch_3.xml +++ b/specification/ch_3.xml @@ -2915,6 +2915,20 @@ my_func: + + + #lo28(value) + + + + Denotes the least-significant 28 bits of the indicated + 64-bit value. That is: + + + #lo28(x) = x & 0x00fffffff + + + #hi30(value) @@ -2944,6 +2958,50 @@ my_func: + + + #higher34(value) + + + Denotes bits 34–49 of the indicated value. That + is: + #higher34(x) = x >> 34 + + + + + #highera34(value) + + + Denotes the higher adjusted value: bits 34–49 + of the + indicated value, compensating for #lo34( ) being treated as a + signed number. That is: + #highera34(x) = (x + 0x200000000) >> 34 + + + + + #highest34(value) + + + Denotes bits 50–63 of the indicated value. That + is: + #highest34(x) = x >> 50 + + + + + #highesta34(value) + + + Denotes the highest adjusted value: bits 50–63 + of the + indicated value, compensating for #lo34( ) being treated as a + signed number. That is: + #highesta34(x) = (x + 0x200000000) >> 50 + + TP @@ -4803,12 +4861,26 @@ my_func: none + + + R_PPC64_PCREL_OPT + + + 123 + + + none + + + none + + R_PPC64_PLT16_LO_NOTOC - 123 + 124 half16 @@ -4822,7 +4894,7 @@ my_func: R_PPC64_PLT16_HI_NOTOC - 124 + 125 half16* @@ -4836,7 +4908,7 @@ my_func: R_PPC64_PLT16_HA_NOTOC - 125 + 126 half16* @@ -4850,7 +4922,7 @@ my_func: R_PPC64_PLT16_LO_DS_NOTOC - 126 + 127 half16ds @@ -4864,7 +4936,7 @@ my_func: R_PPC64_PCREL34 - 127 + 128 prefix34* @@ -4878,7 +4950,7 @@ my_func: R_PPC64_PCREL32 - 128 + 129 prefix32* @@ -4892,7 +4964,7 @@ my_func: R_PPC64_PCREL30 - 129 + 130 prefix30* @@ -4906,7 +4978,7 @@ my_func: R_PPC64_PCREL24 - 130 + 131 prefix24* @@ -4920,7 +4992,7 @@ my_func: R_PPC64_GOT_PCREL34 - 131 + 132 prefix34* @@ -4934,7 +5006,7 @@ my_func: R_PPC64_GOT_PCREL32 - 132 + 133 prefix32* @@ -4948,7 +5020,7 @@ my_func: R_PPC64_GOT_PCREL30 - 133 + 134 prefix30* @@ -4962,7 +5034,7 @@ my_func: R_PPC64_GOT_PCREL24 - 134 + 135 prefix24* @@ -4971,20 +5043,6 @@ my_func: (G – P) >> 4 - - - R_PPC64_PCREL_OPT - - - 135 - - - none - - - none - - R_PPC64_PLT_PCREL34 @@ -5099,7 +5157,7 @@ my_func: - R_PPC64_ADDR64_LO34 + R_PPC64_D34 144 @@ -5113,7 +5171,7 @@ my_func: - R_PPC64_ADDR64_LO32 + R_PPC64_D32 145 @@ -5127,7 +5185,7 @@ my_func: - R_PPC64_ADDR64_LO30 + R_PPC64_D30 146 @@ -5141,32 +5199,214 @@ my_func: - R_PPC64_ADDR64_HI30 + R_PPC64_D24 147 - prefix34* + prefix24* - #hi30(S + A) + #lo28(S + A) >> 4 - R_PPC64_ADDR64_HA30 + R_PPC64_D34_LO 148 - prefix34* + prefix34 + + + #lo34(S + A) + + + + + R_PPC64_D32_LO + + + 149 + + + prefix32 + + + #lo34(S + A) >> 2 + + + + + R_PPC64_D30_LO + + + 150 + + + prefix30 + + + #lo34(S + A) >> 4 + + + + + R_PPC64_D24_LO + + + 151 + + + prefix24 + + + #lo28(S + A) >> 4 + + + + + R_PPC64_D34_HIGHER34 + + + 152 + + + prefix34 + + + #hi30(S + A) + + + + + R_PPC64_D34_HIGHERA34 + + + 153 + + + prefix34 #ha30(S + A) + + + R_PPC64_ADDR16_HIGHER34 + + + 154 + + + half16 + + + #higher34(S + A) + + + + + R_PPC64_ADDR16_HIGHERA34 + + + 155 + + + half16 + + + #highera34(S + A) + + + + + R_PPC64_ADDR16_HIGHEST34 + + + 156 + + + half16 + + + #highest34(S + A) + + + + + R_PPC64_ADDR16_HIGHESTA34 + + + 157 + + + half16 + + + #highesta34(S + A) + + + + + R_PPC64_REL16_HIGHER34 + + + 158 + + + half16 + + + #higher34(S + A – P) + + + + + R_PPC64_REL16_HIGHERA34 + + + 159 + + + half16 + + + #highera34(S + A – P) + + + + + R_PPC64_REL16_HIGHEST34 + + + 160 + + + half16 + + + #highest34(S + A – P) + + + + + R_PPC64_REL16_HIGHESTA34 + + + 161 + + + half16 + + + #highesta34(S + A – P) + + R_PPC64_IRELATIVE