@@ -906,8 +906,9 @@ pub const R_RISCV_SET16: u32 = 55;
906906pub const R_RISCV_SET32 : u32 = 56 ;
907907
908908/////////////////////
909- // PowerPC
910- // See: https://www.nxp.com/docs/en/reference-manual/E500ABIUG.pdf
909+ // PowerPC 32-bit
910+ // See: https://example61560.wordpress.com/wp-content/uploads/2016/11/powerpc_abi.pdf
911+ // and https://www.nxp.com/docs/en/reference-manual/E500ABIUG.pdf
911912/////////////////////
912913pub const R_PPC_NONE : u32 = 0 ;
913914pub const R_PPC_ADDR32 : u32 = 1 ;
@@ -986,6 +987,28 @@ pub const R_PPC_EMB_SPE_HALF_SDA0REL: u32 = 212;
986987pub const R_PPC_EMB_SPE_DOUBLE_SDA : u32 = 213 ;
987988pub const R_PPC_EMB_SPE_WORD_SDA : u32 = 214 ;
988989pub const R_PPC_EMB_SPE_HALF_SDA : u32 = 215 ;
990+ pub const R_PPC_VLE_REL8 : u32 = 216 ;
991+ pub const R_PPC_VLE_REL15 : u32 = 217 ;
992+ pub const R_PPC_VLE_REL24 : u32 = 218 ;
993+ pub const R_PPC_VLE_LO16A : u32 = 219 ;
994+ pub const R_PPC_VLE_LO16D : u32 = 220 ;
995+ pub const R_PPC_VLE_HI16A : u32 = 221 ;
996+ pub const R_PPC_VLE_HI16D : u32 = 222 ;
997+ pub const R_PPC_VLE_HA16A : u32 = 223 ;
998+ pub const R_PPC_VLE_HA16D : u32 = 224 ;
999+ pub const R_PPC_VLE_SDA21 : u32 = 225 ;
1000+ pub const R_PPC_VLE_SDA21_LO : u32 = 226 ;
1001+ pub const R_PPC_VLE_SDAREL_LO16A : u32 = 227 ;
1002+ pub const R_PPC_VLE_SDAREL_LO16D : u32 = 228 ;
1003+ pub const R_PPC_VLE_SDAREL_HI16A : u32 = 229 ;
1004+ pub const R_PPC_VLE_SDAREL_HI16D : u32 = 230 ;
1005+ pub const R_PPC_VLE_SDAREL_HA16A : u32 = 231 ;
1006+ pub const R_PPC_VLE_SDAREL_HA16D : u32 = 232 ;
1007+ pub const R_PPC_VLE_ADDR20 : u32 = 233 ;
1008+ pub const R_PPC_REL16 : u32 = 249 ;
1009+ pub const R_PPC_REL16_LO : u32 = 250 ;
1010+ pub const R_PPC_REL16_HI : u32 = 251 ;
1011+ pub const R_PPC_REL16_HA : u32 = 252 ;
9891012
9901013/////////////////////
9911014// PowerPC64
@@ -1035,7 +1058,7 @@ pub const R_PPC64_SECTOFF_LO: u32 = R_PPC_SECTOFF_LO;
10351058pub const R_PPC64_SECTOFF_HI : u32 = R_PPC_SECTOFF_HI ;
10361059pub const R_PPC64_SECTOFF_HA : u32 = R_PPC_SECTOFF_HA ;
10371060/// word30 (S + A - P) >> 2.
1038- pub const R_PPC64_ADDR30 : u32 = 37 ;
1061+ pub const R_PPC64_ADDR30 : u32 = R_PPC_ADDR30 ;
10391062/// doubleword64 S + A.
10401063pub const R_PPC64_ADDR64 : u32 = 38 ;
10411064/// half16 #higher(S + A).
@@ -1189,10 +1212,10 @@ pub const R_PPC64_ENTRY: u32 = 118;
11891212pub const R_PPC64_PCREL34 : u32 = 132 ;
11901213pub const R_PPC64_GOT_PCREL34 : u32 = 133 ;
11911214pub const R_PPC64_IRELATIVE : u32 = 248 ;
1192- pub const R_PPC64_REL16 : u32 = 249 ;
1193- pub const R_PPC64_REL16_LO : u32 = 250 ;
1194- pub const R_PPC64_REL16_HI : u32 = 251 ;
1195- pub const R_PPC64_REL16_HA : u32 = 252 ;
1215+ pub const R_PPC64_REL16 : u32 = R_PPC_REL16 ;
1216+ pub const R_PPC64_REL16_LO : u32 = R_PPC_REL16_LO ;
1217+ pub const R_PPC64_REL16_HI : u32 = R_PPC_REL16_HI ;
1218+ pub const R_PPC64_REL16_HA : u32 = R_PPC_REL16_HA ;
11961219pub const R_PPC64_GNU_VTINHERIT : u32 = 253 ;
11971220pub const R_PPC64_GNU_VTENTRY : u32 = 254 ;
11981221
@@ -1824,7 +1847,7 @@ pub fn r_to_str(typ: u32, machine: u16) -> &'static str {
18241847 R_RISCV_SET32 => "R_RISCV_SET32" ,
18251848 _ => "R_UNKNOWN_RISCV" ,
18261849 } ,
1827- // Power-PC
1850+ // Power-PC 32-bit
18281851 EM_PPC => match typ {
18291852 R_PPC_NONE => "R_PPC_NONE" ,
18301853 R_PPC_ADDR32 => "R_PPC_ADDR32" ,
@@ -1903,9 +1926,31 @@ pub fn r_to_str(typ: u32, machine: u16) -> &'static str {
19031926 R_PPC_EMB_SPE_DOUBLE_SDA => "R_PPC_EMB_SPE_DOUBLE_SDA" ,
19041927 R_PPC_EMB_SPE_WORD_SDA => "R_PPC_EMB_SPE_WORD_SDA" ,
19051928 R_PPC_EMB_SPE_HALF_SDA => "R_PPC_EMB_SPE_HALF_SDA" ,
1929+ R_PPC_VLE_REL8 => "R_PPC_VLE_REL8" ,
1930+ R_PPC_VLE_REL15 => "R_PPC_VLE_REL15" ,
1931+ R_PPC_VLE_REL24 => "R_PPC_VLE_REL24" ,
1932+ R_PPC_VLE_LO16A => "R_PPC_VLE_LO16A" ,
1933+ R_PPC_VLE_LO16D => "R_PPC_VLE_LO16D" ,
1934+ R_PPC_VLE_HI16A => "R_PPC_VLE_HI16A" ,
1935+ R_PPC_VLE_HI16D => "R_PPC_VLE_HI16D" ,
1936+ R_PPC_VLE_HA16A => "R_PPC_VLE_HA16A" ,
1937+ R_PPC_VLE_HA16D => "R_PPC_VLE_HA16D" ,
1938+ R_PPC_VLE_SDA21 => "R_PPC_VLE_SDA21" ,
1939+ R_PPC_VLE_SDA21_LO => "R_PPC_VLE_SDA21_LO" ,
1940+ R_PPC_VLE_SDAREL_LO16A => "R_PPC_VLE_SDAREL_LO16A" ,
1941+ R_PPC_VLE_SDAREL_LO16D => "R_PPC_VLE_SDAREL_LO16D" ,
1942+ R_PPC_VLE_SDAREL_HI16A => "R_PPC_VLE_SDAREL_HI16A" ,
1943+ R_PPC_VLE_SDAREL_HI16D => "R_PPC_VLE_SDAREL_HI16D" ,
1944+ R_PPC_VLE_SDAREL_HA16A => "R_PPC_VLE_SDAREL_HA16A" ,
1945+ R_PPC_VLE_SDAREL_HA16D => "R_PPC_VLE_SDAREL_HA16D" ,
1946+ R_PPC_VLE_ADDR20 => "R_PPC_VLE_ADDR20" ,
1947+ R_PPC_REL16 => "R_PPC_REL16" ,
1948+ R_PPC_REL16_LO => "R_PPC_REL16_LO" ,
1949+ R_PPC_REL16_HI => "R_PPC_REL16_HI" ,
1950+ R_PPC_REL16_HA => "R_PPC_REL16_HA" ,
19061951 _ => "R_UNKNOWN_PPC" ,
19071952 } ,
1908- // Power-PC
1953+ // Power-PC 64-bit
19091954 EM_PPC64 => match typ {
19101955 R_PPC64_NONE => "R_PPC64_NONE" ,
19111956 R_PPC64_ADDR32 => "R_PPC64_ADDR32" ,
0 commit comments