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