| .section .toc,"aw" |
| x4t: |
| .quad x4 |
| x5t: |
| .quad x5 |
| x6t: |
| .quad x6 |
| |
| .section .sdata,"aw" |
| x1: |
| .byte 1 |
| x2: |
| .byte 2 |
| x3: |
| .byte 3 |
| x4: |
| .byte 4 |
| x5: |
| .byte 5 |
| x6: |
| .byte 6 |
| |
| .globl _start |
| .text |
| _start: |
| # no need for got entry, optimise to nop,addi |
| # note: ld doesn't yet do got optimisation, so we get nop,ld |
| addis 9,2,x1@got@ha |
| ld 9,x1@got@l(9) |
| # must keep got entry, optimise to nop,addi,ld |
| addis 4,2,x2@got@ha |
| addi 5,4,x2@got@l |
| ld 6,0(5) |
| |
| # no need for toc entry, optimise to nop,addi |
| addis 9,2,x4t@toc@ha |
| ld 9,x4t@toc@l(9) |
| # must keep toc entry, optimise to nop,addi,ld |
| # if we had a reloc tying the ld to x5/x5t then we could throw away |
| # the toc entry and optimise to nop,nop,addi |
| addis 4,2,x5t@toc@ha |
| addi 5,4,x5t@toc@l |
| ld 6,0(5) |