1.text 2BORINGSSL_bcm_text_start: 3 .file "foo.c" 4 .abiversion 2 5 .section ".toc","aw" 6# WAS .section ".text" 7.text 8# WAS .section .rodata 9.text 10 .align 3 11 .type kString, @object 12 .size kString, 12 13.LkString_local_target: 14kString: 15 .string "hello world" 16 .globl kExportedString 17 .align 3 18 .type kExportedString, @object 19 .size kExportedString, 26 20.LkExportedString_local_target: 21kExportedString: 22 .string "hello world, more visibly" 23 .align 2 24 .type kGiantArray, @object 25 .size kGiantArray, 400000 26.LkGiantArray_local_target: 27kGiantArray: 28 .long 1 29 .long 0 30 .zero 399992 31 .lcomm bss,20,4 32 .type bss, @object 33 .align 3 34.LC1: 35 36 .string "kString is %p\n" 37 .align 3 38.LC2: 39 40 .string "kExportedString is %p\n" 41 .align 3 42.LC4: 43 44 .string "function is %p\n" 45 .align 3 46.LC5: 47 48 .string "exported_function is %p\n" 49 .align 3 50.LC7: 51 52 .string "&kString[5] is %p\n" 53 .align 3 54.LC9: 55 56 .string "&kGiantArray[0x12345] is %p\n" 57 .section ".toc","aw" 58.LC0: 59 60 .quad stderr 61.LC3: 62 63 .quad kExportedString 64.LC6: 65 66 .quad exported_function 67.LC8: 68 69 .quad kString+5 70.LC10: 71 72 .quad kGiantArray+298260 73# WAS .section ".text" 74.text 75 .align 2 76 .type function, @function 77.Lfunction_local_target: 78function: 790: 80999: 81 addis 2, 12, .LBORINGSSL_external_toc-999b@ha 82 addi 2, 2, .LBORINGSSL_external_toc-999b@l 83 ld 12, 0(2) 84 add 2, 2, 12 85# WAS addi 2,2,.TOC.-0b@l 86 .localentry function,.-function 87.Lfunction_local_entry: 88 mflr 0 89 std 0,16(1) 90 std 31,-8(1) 91 stdu 1,-112(1) 92 mr 31,1 93# WAS addis 10,2,.LC0@toc@ha 94# WAS ld 9,.LC0@toc@l(10) 95 addi 1, 1, -288 96 mflr 9 97 std 9, -8(1) 98 std 3, -16(1) 99 bl .Lbcm_loadtoc__dot_LC0 100 std 3, -24(1) 101 ld 3, -8(1) 102 mtlr 3 103 ld 9, -24(1) 104 ld 3, -16(1) 105 addi 1, 1, 288 106 ld 9, 0(9) 107 ld 9,0(9) 108 mr 3,9 109# WAS addis 4,2,.LC1@toc@ha 110# WAS addi 4,4,.LC1@toc@l 111 addi 1, 1, -288 112 mflr 4 113 std 4, -8(1) 114 std 3, -16(1) 115 bl .Lbcm_loadtoc__dot_LC1 116 std 3, -24(1) 117 ld 3, -8(1) 118 mtlr 3 119 ld 4, -24(1) 120 ld 3, -16(1) 121 addi 1, 1, 288 122# WAS addis 5,2,kString@toc@ha 123# WAS addi 5,5,kString@toc@l 124 addi 1, 1, -288 125 mflr 5 126 std 5, -8(1) 127 std 3, -16(1) 128 bl .Lbcm_loadtoc__dot_LkString_local_target 129 std 3, -24(1) 130 ld 3, -8(1) 131 mtlr 3 132 ld 5, -24(1) 133 ld 3, -16(1) 134 addi 1, 1, 288 135# WAS bl fprintf 136 bl bcm_redirector_fprintf 137 ld 2, 24(1) 138 nop 139# WAS addis 10,2,.LC0@toc@ha 140# WAS ld 9,.LC0@toc@l(10) 141 addi 1, 1, -288 142 mflr 9 143 std 9, -8(1) 144 std 3, -16(1) 145 bl .Lbcm_loadtoc__dot_LC0 146 std 3, -24(1) 147 ld 3, -8(1) 148 mtlr 3 149 ld 9, -24(1) 150 ld 3, -16(1) 151 addi 1, 1, 288 152 ld 9, 0(9) 153 ld 9,0(9) 154 mr 3,9 155# WAS addis 4,2,.LC2@toc@ha 156# WAS addi 4,4,.LC2@toc@l 157 addi 1, 1, -288 158 mflr 4 159 std 4, -8(1) 160 std 3, -16(1) 161 bl .Lbcm_loadtoc__dot_LC2 162 std 3, -24(1) 163 ld 3, -8(1) 164 mtlr 3 165 ld 4, -24(1) 166 ld 3, -16(1) 167 addi 1, 1, 288 168# WAS addis 9,2,.LC3@toc@ha 169# WAS ld 5,.LC3@toc@l(9) 170 addi 1, 1, -288 171 mflr 5 172 std 5, -8(1) 173 std 3, -16(1) 174 bl .Lbcm_loadtoc__dot_LC3 175 std 3, -24(1) 176 ld 3, -8(1) 177 mtlr 3 178 ld 5, -24(1) 179 ld 3, -16(1) 180 addi 1, 1, 288 181 ld 5, 0(5) 182# WAS bl fprintf 183 bl bcm_redirector_fprintf 184 ld 2, 24(1) 185 nop 186# WAS addis 10,2,.LC0@toc@ha 187# WAS ld 9,.LC0@toc@l(10) 188 addi 1, 1, -288 189 mflr 9 190 std 9, -8(1) 191 std 3, -16(1) 192 bl .Lbcm_loadtoc__dot_LC0 193 std 3, -24(1) 194 ld 3, -8(1) 195 mtlr 3 196 ld 9, -24(1) 197 ld 3, -16(1) 198 addi 1, 1, 288 199 ld 9, 0(9) 200 ld 9,0(9) 201 mr 3,9 202# WAS addis 4,2,.LC4@toc@ha 203# WAS addi 4,4,.LC4@toc@l 204 addi 1, 1, -288 205 mflr 4 206 std 4, -8(1) 207 std 3, -16(1) 208 bl .Lbcm_loadtoc__dot_LC4 209 std 3, -24(1) 210 ld 3, -8(1) 211 mtlr 3 212 ld 4, -24(1) 213 ld 3, -16(1) 214 addi 1, 1, 288 215# WAS addis 5,2,function@toc@ha 216# WAS addi 5,5,function@toc@l 217 addi 1, 1, -288 218 mflr 5 219 std 5, -8(1) 220 std 3, -16(1) 221 bl .Lbcm_loadtoc__dot_Lfunction_local_target 222 std 3, -24(1) 223 ld 3, -8(1) 224 mtlr 3 225 ld 5, -24(1) 226 ld 3, -16(1) 227 addi 1, 1, 288 228# WAS bl fprintf 229 bl bcm_redirector_fprintf 230 ld 2, 24(1) 231 nop 232# WAS addis 10,2,.LC0@toc@ha 233# WAS ld 9,.LC0@toc@l(10) 234 addi 1, 1, -288 235 mflr 9 236 std 9, -8(1) 237 std 3, -16(1) 238 bl .Lbcm_loadtoc__dot_LC0 239 std 3, -24(1) 240 ld 3, -8(1) 241 mtlr 3 242 ld 9, -24(1) 243 ld 3, -16(1) 244 addi 1, 1, 288 245 ld 9, 0(9) 246 ld 9,0(9) 247 mr 3,9 248# WAS addis 4,2,.LC5@toc@ha 249# WAS addi 4,4,.LC5@toc@l 250 addi 1, 1, -288 251 mflr 4 252 std 4, -8(1) 253 std 3, -16(1) 254 bl .Lbcm_loadtoc__dot_LC5 255 std 3, -24(1) 256 ld 3, -8(1) 257 mtlr 3 258 ld 4, -24(1) 259 ld 3, -16(1) 260 addi 1, 1, 288 261# WAS addis 9,2,.LC6@toc@ha 262# WAS ld 5,.LC6@toc@l(9) 263 addi 1, 1, -288 264 mflr 5 265 std 5, -8(1) 266 std 3, -16(1) 267 bl .Lbcm_loadtoc__dot_LC6 268 std 3, -24(1) 269 ld 3, -8(1) 270 mtlr 3 271 ld 5, -24(1) 272 ld 3, -16(1) 273 addi 1, 1, 288 274 ld 5, 0(5) 275# WAS bl fprintf 276 bl bcm_redirector_fprintf 277 ld 2, 24(1) 278 nop 279# WAS addis 10,2,.LC0@toc@ha 280# WAS ld 9,.LC0@toc@l(10) 281 addi 1, 1, -288 282 mflr 9 283 std 9, -8(1) 284 std 3, -16(1) 285 bl .Lbcm_loadtoc__dot_LC0 286 std 3, -24(1) 287 ld 3, -8(1) 288 mtlr 3 289 ld 9, -24(1) 290 ld 3, -16(1) 291 addi 1, 1, 288 292 ld 9, 0(9) 293 ld 9,0(9) 294 mr 3,9 295# WAS addis 4,2,.LC7@toc@ha 296# WAS addi 4,4,.LC7@toc@l 297 addi 1, 1, -288 298 mflr 4 299 std 4, -8(1) 300 std 3, -16(1) 301 bl .Lbcm_loadtoc__dot_LC7 302 std 3, -24(1) 303 ld 3, -8(1) 304 mtlr 3 305 ld 4, -24(1) 306 ld 3, -16(1) 307 addi 1, 1, 288 308# WAS addis 9,2,.LC8@toc@ha 309# WAS ld 5,.LC8@toc@l(9) 310 addi 1, 1, -288 311 mflr 5 312 std 5, -8(1) 313 std 3, -16(1) 314 bl .Lbcm_loadtoc__dot_LC8 315 std 3, -24(1) 316 ld 3, -8(1) 317 mtlr 3 318 ld 5, -24(1) 319 ld 3, -16(1) 320 addi 1, 1, 288 321 ld 5, 0(5) 322# WAS bl fprintf 323 bl bcm_redirector_fprintf 324 ld 2, 24(1) 325 nop 326# WAS addis 10,2,.LC0@toc@ha 327# WAS ld 9,.LC0@toc@l(10) 328 addi 1, 1, -288 329 mflr 9 330 std 9, -8(1) 331 std 3, -16(1) 332 bl .Lbcm_loadtoc__dot_LC0 333 std 3, -24(1) 334 ld 3, -8(1) 335 mtlr 3 336 ld 9, -24(1) 337 ld 3, -16(1) 338 addi 1, 1, 288 339 ld 9, 0(9) 340 ld 9,0(9) 341 mr 3,9 342# WAS addis 4,2,.LC9@toc@ha 343# WAS addi 4,4,.LC9@toc@l 344 addi 1, 1, -288 345 mflr 4 346 std 4, -8(1) 347 std 3, -16(1) 348 bl .Lbcm_loadtoc__dot_LC9 349 std 3, -24(1) 350 ld 3, -8(1) 351 mtlr 3 352 ld 4, -24(1) 353 ld 3, -16(1) 354 addi 1, 1, 288 355# WAS addis 9,2,.LC10@toc@ha 356# WAS ld 5,.LC10@toc@l(9) 357 addi 1, 1, -288 358 mflr 5 359 std 5, -8(1) 360 std 3, -16(1) 361 bl .Lbcm_loadtoc__dot_LC10 362 std 3, -24(1) 363 ld 3, -8(1) 364 mtlr 3 365 ld 5, -24(1) 366 ld 3, -16(1) 367 addi 1, 1, 288 368 ld 5, 0(5) 369# WAS bl fprintf 370 bl bcm_redirector_fprintf 371 ld 2, 24(1) 372 nop 373# WAS bl exported_function 374 bl .Lexported_function_local_entry 375 nop 376 mr 3,9 377 addi 1,31,112 378 ld 0,16(1) 379 mtlr 0 380 ld 31,-8(1) 381 blr 382 .long 0 383 .byte 0,0,0,1,128,1,0,1 384 .size function,.-function 385 .align 2 386 .globl exported_function 387 .type exported_function, @function 388.Lexported_function_local_target: 389exported_function: 3900: 391999: 392 addis 2, 12, .LBORINGSSL_external_toc-999b@ha 393 addi 2, 2, .LBORINGSSL_external_toc-999b@l 394 ld 12, 0(2) 395 add 2, 2, 12 396# WAS addi 2,2,.TOC.-0b@l 397 .localentry exported_function,.-exported_function 398.Lexported_function_local_entry: 399 mflr 0 400 std 0,16(1) 401 std 31,-8(1) 402 stdu 1,-48(1) 403 mr 31,1 404# WAS bl function 405 bl .Lfunction_local_entry 406 mr 3,9 407 addi 1,31,48 408 ld 0,16(1) 409 mtlr 0 410 ld 31,-8(1) 411 blr 412 .long 0 413 .byte 0,0,0,1,128,1,0,1 414 .size exported_function,.-exported_function 415 .ident "GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2" 416 .section .note.GNU-stack,"",@progbits 417.text 418BORINGSSL_bcm_text_end: 419.section ".toc", "aw" 420.Lredirector_toc_fprintf: 421.quad fprintf 422.text 423.type bcm_redirector_fprintf, @function 424bcm_redirector_fprintf: 425 std 2, 24(1) 426 addis 12, 2, .Lredirector_toc_fprintf@toc@ha 427 ld 12, .Lredirector_toc_fprintf@toc@l(12) 428 mtctr 12 429 bctr 430.type bss_bss_get, @function 431bss_bss_get: 432 addis 3, 2, bss@toc@ha 433 addi 3, 3, bss@toc@l 434 blr 435.type bcm_loadtoc__dot_LC0, @function 436bcm_loadtoc__dot_LC0: 437.Lbcm_loadtoc__dot_LC0: 438 addis 3, 2, .LC0@toc@ha 439 addi 3, 3, .LC0@toc@l 440 blr 441.type bcm_loadtoc__dot_LC1, @function 442bcm_loadtoc__dot_LC1: 443.Lbcm_loadtoc__dot_LC1: 444 addis 3, 2, .LC1@toc@ha 445 addi 3, 3, .LC1@toc@l 446 blr 447.type bcm_loadtoc__dot_LC10, @function 448bcm_loadtoc__dot_LC10: 449.Lbcm_loadtoc__dot_LC10: 450 addis 3, 2, .LC10@toc@ha 451 addi 3, 3, .LC10@toc@l 452 blr 453.type bcm_loadtoc__dot_LC2, @function 454bcm_loadtoc__dot_LC2: 455.Lbcm_loadtoc__dot_LC2: 456 addis 3, 2, .LC2@toc@ha 457 addi 3, 3, .LC2@toc@l 458 blr 459.type bcm_loadtoc__dot_LC3, @function 460bcm_loadtoc__dot_LC3: 461.Lbcm_loadtoc__dot_LC3: 462 addis 3, 2, .LC3@toc@ha 463 addi 3, 3, .LC3@toc@l 464 blr 465.type bcm_loadtoc__dot_LC4, @function 466bcm_loadtoc__dot_LC4: 467.Lbcm_loadtoc__dot_LC4: 468 addis 3, 2, .LC4@toc@ha 469 addi 3, 3, .LC4@toc@l 470 blr 471.type bcm_loadtoc__dot_LC5, @function 472bcm_loadtoc__dot_LC5: 473.Lbcm_loadtoc__dot_LC5: 474 addis 3, 2, .LC5@toc@ha 475 addi 3, 3, .LC5@toc@l 476 blr 477.type bcm_loadtoc__dot_LC6, @function 478bcm_loadtoc__dot_LC6: 479.Lbcm_loadtoc__dot_LC6: 480 addis 3, 2, .LC6@toc@ha 481 addi 3, 3, .LC6@toc@l 482 blr 483.type bcm_loadtoc__dot_LC7, @function 484bcm_loadtoc__dot_LC7: 485.Lbcm_loadtoc__dot_LC7: 486 addis 3, 2, .LC7@toc@ha 487 addi 3, 3, .LC7@toc@l 488 blr 489.type bcm_loadtoc__dot_LC8, @function 490bcm_loadtoc__dot_LC8: 491.Lbcm_loadtoc__dot_LC8: 492 addis 3, 2, .LC8@toc@ha 493 addi 3, 3, .LC8@toc@l 494 blr 495.type bcm_loadtoc__dot_LC9, @function 496bcm_loadtoc__dot_LC9: 497.Lbcm_loadtoc__dot_LC9: 498 addis 3, 2, .LC9@toc@ha 499 addi 3, 3, .LC9@toc@l 500 blr 501.type bcm_loadtoc__dot_Lfunction_local_target, @function 502bcm_loadtoc__dot_Lfunction_local_target: 503.Lbcm_loadtoc__dot_Lfunction_local_target: 504 addis 3, 2, .Lfunction_local_target@toc@ha 505 addi 3, 3, .Lfunction_local_target@toc@l 506 blr 507.type bcm_loadtoc__dot_LkString_local_target, @function 508bcm_loadtoc__dot_LkString_local_target: 509.Lbcm_loadtoc__dot_LkString_local_target: 510 addis 3, 2, .LkString_local_target@toc@ha 511 addi 3, 3, .LkString_local_target@toc@l 512 blr 513.LBORINGSSL_external_toc: 514.quad .TOC.-.LBORINGSSL_external_toc 515.type BORINGSSL_bcm_text_hash, @object 516.size BORINGSSL_bcm_text_hash, 64 517BORINGSSL_bcm_text_hash: 518.byte 0xae 519.byte 0x2c 520.byte 0xea 521.byte 0x2a 522.byte 0xbd 523.byte 0xa6 524.byte 0xf3 525.byte 0xec 526.byte 0x97 527.byte 0x7f 528.byte 0x9b 529.byte 0xf6 530.byte 0x94 531.byte 0x9a 532.byte 0xfc 533.byte 0x83 534.byte 0x68 535.byte 0x27 536.byte 0xcb 537.byte 0xa0 538.byte 0xa0 539.byte 0x9f 540.byte 0x6b 541.byte 0x6f 542.byte 0xde 543.byte 0x52 544.byte 0xcd 545.byte 0xe2 546.byte 0xcd 547.byte 0xff 548.byte 0x31 549.byte 0x80 550.byte 0xa2 551.byte 0xd4 552.byte 0xc3 553.byte 0x66 554.byte 0xf 555.byte 0xc2 556.byte 0x6a 557.byte 0x7b 558.byte 0xf4 559.byte 0xbe 560.byte 0x39 561.byte 0xa2 562.byte 0xd7 563.byte 0x25 564.byte 0xdb 565.byte 0x21 566.byte 0x98 567.byte 0xe9 568.byte 0xd5 569.byte 0x53 570.byte 0xbf 571.byte 0x5c 572.byte 0x32 573.byte 0x6 574.byte 0x83 575.byte 0x34 576.byte 0xc 577.byte 0x65 578.byte 0x89 579.byte 0x52 580.byte 0xbd 581.byte 0x1f 582