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