diff --git a/specification/bk_main.xml b/specification/bk_main.xml
index a018706..8beecad 100644
--- a/specification/bk_main.xml
+++ b/specification/bk_main.xml
@@ -57,7 +57,7 @@
Freescale Semiconductor, Inc
- Revision 1.5g draft
+ Revision 1.5h draft
OpenPOWER
@@ -93,6 +93,17 @@
+
+ 2018-12-17
+
+
+
+ Revision 1.5h: PC-relative addressing eighth
+ draft.
+
+
+
+
2018-10-02
diff --git a/specification/ch_3.xml b/specification/ch_3.xml
index d8de312..a290f2c 100644
--- a/specification/ch_3.xml
+++ b/specification/ch_3.xml
@@ -2277,291 +2277,8 @@ my_func:
- In the following figure, prefix32 specifies a 32-bit field taking up
- bits 14-31 and 48-61 of two consecutive words. This is used, for
- example, by the pld instruction.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
- 3
-
-
- 1
-
-
-
-
-
-
-
-
- 2
-
-
- 2
-
-
- 1
-
-
- 3
-
-
- 0
-
-
-
-
-
-
-
- prefix32 (high 18 bits)
-
-
-
-
- 0
-
-
- 13
-
-
- 14
-
-
- 31
-
-
-
-
- 4
-
-
- 7
-
-
- 5
-
-
- 6
-
-
- 6
-
-
- 5
-
-
- 7
-
-
-
-
-
-
-
-
- 4
-
-
-
-
-
-
-
- prefix32 (low 14 bits)
-
-
-
-
-
-
-
-
-
-
- 32
-
-
- 47
-
-
- 48
-
-
- 61
-
-
- 62
-
-
- 63
-
-
-
-
-
-
- In the following figure, prefix30 specifies a 30-bit field taking up
- bits 14-31 and 48-59 of two consecutive words. This is used, for
- example, by the plxv instruction.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
- 3
-
-
- 1
-
-
-
-
-
-
-
-
- 2
-
-
- 2
-
-
- 1
-
-
- 3
-
-
- 0
-
-
-
-
-
-
-
- prefix30 (high 18 bits)
-
-
-
-
- 0
-
-
- 13
-
-
- 14
-
-
- 31
-
-
-
-
- 4
-
-
- 7
-
-
- 5
-
-
- 6
-
-
- 6
-
-
- 5
-
-
- 7
-
-
-
-
-
- 4
-
-
-
-
-
-
-
- prefix30 (low 12 bits)
-
-
-
-
-
-
-
-
-
-
- 32
-
-
- 47
-
-
- 48
-
-
- 59
-
-
- 60
-
-
- 63
-
-
-
-
-
-
- In the following figure, prefix24 specifies a 24-bit field taking up
- bits 20-31 and 48-59 of two consecutive words. This is used, for
+ In the following figure, prefix28 specifies a 28-bit field taking up
+ bits 20-31 and 48-63 of two consecutive words. This is used, for
example, by the pmlxv instruction.
@@ -2616,7 +2333,7 @@ my_func:
- prefix24 (high 12 bits)
+ prefix28 (high 12 bits)
@@ -2652,7 +2369,7 @@ my_func:
5
-
+
7
@@ -2663,15 +2380,9 @@ my_func:
-
- prefix24 (low 12 bits)
+
+ prefix28 (low 16 bits)
-
-
-
-
-
-
@@ -2683,11 +2394,11 @@ my_func:
48
-
- 59
+
+
- 60
+
63
@@ -2929,35 +2640,6 @@ my_func:
-
-
- #hi30(value)
-
-
-
- Denotes bits 34–63 of the indicated 64-bit value.
- That is:
-
-
- #hi30(x) = x >> 34
-
-
-
-
-
- #ha30(value)
-
-
-
- Denotes the high adjusted value: bits 34–63 of the
- indicated 64-bit value, compensating for #lo34() being
- treated as a signed number. That is:
-
-
- #ha30(x) = (x + 0x200000000) >> 34
-
-
-
#higher34(value)
@@ -3070,6 +2752,17 @@ my_func:
dtv[dtpmod] + dtprel = (S + A)
+
+
+ rel16dx
+
+
+
+ Represents a 16-bit signed offset split across three
+ fields, as required by the addpcis instruction.
+
+
+
tprel
@@ -4933,7 +4626,7 @@ my_func:
- R_PPC64_PCREL34
+ R_PPC64_D34
128
@@ -4942,54 +4635,54 @@ my_func:
prefix34*
- S + A – P
+ S + A
- R_PPC64_PCREL32
+ R_PPC64_D34_LO
129
- prefix32*
+ prefix34
- (S + A – P) >> 2
+ #lo34(S + A)
- R_PPC64_PCREL30
+ R_PPC64_D34_HIGHER34
130
- prefix30*
+ prefix34
- (S + A – P) >> 4
+ #higher34(S + A)
- R_PPC64_PCREL24
+ R_PPC64_D34_HIGHERA34
131
- prefix24*
+ prefix34
- (S + A – P) >> 4
+ #highera34(S + A)
- R_PPC64_GOT_PCREL34
+ R_PPC64_PCREL34
132
@@ -4998,413 +4691,287 @@ my_func:
prefix34*
- G – P
+ S + A – P
- R_PPC64_GOT_PCREL32
+ R_PPC64_GOT_PCREL34
133
- prefix32*
+ prefix34*
- (G – P) >> 2
+ G – P
- R_PPC64_GOT_PCREL30
+ R_PPC64_PLT_PCREL34
134
- prefix30*
+ prefix34*
- (G – P) >> 4
+ L – P
- R_PPC64_GOT_PCREL24
+ R_PPC64_PLT_PCREL34_NOTOC
135
- prefix24*
+ prefix34*
- (G – P) >> 4
+ L – P
- R_PPC64_PLT_PCREL34
+ R_PPC64_ADDR16_HIGHER34
136
- prefix34*
+ half16
- L – P
+ #higher34(S + A)
- R_PPC64_PLT_PCREL32
+ R_PPC64_ADDR16_HIGHERA34
137
- prefix32*
+ half16
- (L – P) >> 2
+ #highera34(S + A)
- R_PPC64_PLT_PCREL30
+ R_PPC64_ADDR16_HIGHEST34
138
- prefix30*
+ half16
- (L – P) >> 4
+ #highest34(S + A)
- R_PPC64_PLT_PCREL24
+ R_PPC64_ADDR16_HIGHESTA34
139
- prefix24*
+ half16
- (L – P) >> 4
+ #highesta34(S + A)
- R_PPC64_PLT_PCREL34_NOTOC
+ R_PPC64_REL16_HIGHER34
140
- prefix34*
+ half16
- L – P
+ #higher34(S + A – P)
- R_PPC64_PLT_PCREL32_NOTOC
+ R_PPC64_REL16_HIGHERA34
141
- prefix32*
+ half16
- (L – P) >> 2
+ #highera34(S + A – P)
- R_PPC64_PLT_PCREL30_NOTOC
+ R_PPC64_REL16_HIGHEST34
142
- prefix30*
+ half16
- (L – P) >> 4
+ #highest34(S + A – P)
- R_PPC64_PLT_PCREL24_NOTOC
+ R_PPC64_REL16_HIGHESTA34
143
- prefix24*
+ half16
- (L – P) >> 4
+ #highesta34(S + A – P)
- R_PPC64_D34
+ R_PPC64_D28
144
- prefix34*
+ prefix28*
- #lo34(S + A)
+ S + A
- R_PPC64_D32
+ R_PPC64_PCREL28
145
- prefix32*
+ prefix28*
- #lo34(S + A) >> 2
-
-
-
-
- R_PPC64_D30
-
-
- 146
-
-
- prefix30*
-
-
- #lo34(S + A) >> 4
-
-
-
-
- R_PPC64_D24
-
-
- 147
-
-
- prefix24*
-
-
- #lo28(S + A) >> 4
-
-
-
-
- R_PPC64_D34_LO
-
-
- 148
-
-
- 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)
+ S + A – P
- R_PPC64_ADDR16_HIGHERA34
+ R_PPC64_REL16_HIGH
- 155
+ 240
half16
- #highera34(S + A)
+ #hi(S + A – P)
- R_PPC64_ADDR16_HIGHEST34
+ R_PPC64_REL16_HIGHA
- 156
+ 241
half16
- #highest34(S + A)
+ #ha(S + A – P)
- R_PPC64_ADDR16_HIGHESTA34
+ R_PPC64_REL16_HIGHER
- 157
+ 242
half16
- #highesta34(S + A)
+ #higher(S + A – P)
- R_PPC64_REL16_HIGHER34
+ R_PPC64_REL16_HIGHERA
- 158
+ 243
half16
- #higher34(S + A – P)
+ #highera(S + A – P)
- R_PPC64_REL16_HIGHERA34
+ R_PPC64_REL16_HIGHEST
- 159
+ 244
half16
- #highera34(S + A – P)
+ #highest(S + A – P)
- R_PPC64_REL16_HIGHEST34
+ R_PPC64_REL16_HIGHESTA
- 160
+ 245
half16
- #highest34(S + A – P)
+ #highesta(S + A – P)
- R_PPC64_REL16_HIGHESTA34
+ R_PPC64_REL16DX_HA
- 161
+ 246
- half16
+ rel16dx*
- #highesta34(S + A – P)
+ #ha(S + A – P)