| #source: tlsbin.s |
| #as: |
| #ld: -melf32xtensa |
| #objdump: -drj.text --start-address=0x400238 |
| #target: xtensa*-*-linux* |
| |
| .*: +file format elf32-xtensa-.e |
| |
| Disassembly of section \.text: |
| |
| 0+400238 <_start>: |
| [0-9a-f]+: [0-9a-f]+[ ]+entry a1, 32 |
| # GD -> IE because variable is not defined in executable |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a8 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a10, 4001ec <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a10, a10, a8 |
| # GD -> IE because variable is not defined in executable where |
| # the variable is referenced through IE too |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a8 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a10, 4001f4 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a10, a10, a8 |
| # GD -> LE with global variable defined in executable |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a8 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a10, 4001fc <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a10, a10, a8 |
| # GD -> LE with local variable defined in executable |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a8 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a10, 400204 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a10, a10, a8 |
| # GD -> LE with hidden variable defined in executable |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a8 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a10, 40020c <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a10, a10, a8 |
| # LD -> LE |
| [0-9a-f]+: [0-9a-f]+[ ]+nop.* |
| [0-9a-f]+: [0-9a-f]+[ ]+nop.* |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a10 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a12, 400218 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a12, a12, a10 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a13, 40021c <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a13, a13, a10 |
| # LD -> LE against hidden variables |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a12, 400220 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a12, a12, a10 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a13, 400224 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a13, a13, a10 |
| # |
| # IE against global var |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a2 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a3, 400228 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a3, a3, a2 |
| # IE -> LE against global var defined in exec |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a4 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a5, 40022c <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a5, a5, a4 |
| # IE -> LE against local var |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a6 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a7, 400230 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a7, a7, a6 |
| # IE -> LE against hidden var |
| [0-9a-f]+: [0-9a-f]+[ ]+rur.threadptr a8 |
| [0-9a-f]+: [0-9a-f]+[ ]+l32r a9, 400234 <.*> |
| [0-9a-f]+: [0-9a-f]+[ ]+add.* a9, a9, a8 |
| # |
| [0-9a-f]+: [0-9a-f]+[ ]+retw.* |