| # Source code used to test %hi/%lo operators with constants worked out |
| # as a difference of local symbols, both previously defined and forward |
| # references. |
| |
| .text |
| foo: |
| li $4, %hi(2f - 0f) |
| sll $4, 16 |
| addiu $4, %lo(2f - 0f) |
| li $5, %hi(0f - 3f) |
| sll $5, 16 |
| addiu $5, %lo(0f - 3f) |
| 0: |
| li $4, %hi(2f - 0b) |
| sll $4, 16 |
| addiu $4, %lo(2f - 0b) |
| li $5, %hi(0b - 3f) |
| sll $5, 16 |
| addiu $5, %lo(0b - 3f) |
| 1: |
| .insn |
| .fill 0x7ffc - (1b - 0b) |
| 2: |
| .insn |
| .fill 0x8000 - (2b - 0b) |
| 3: |
| li $4, %hi(2b - 0b) |
| sll $4, 16 |
| addiu $4, %lo(2b - 0b) |
| li $5, %hi(0b - 3b) |
| sll $5, 16 |
| addiu $5, %lo(0b - 3b) |
| |
| li $4, %hi(2f - 0f) |
| sll $4, 16 |
| addiu $4, %lo(2f - 0f) |
| li $5, %hi(0f - 3f) |
| sll $5, 16 |
| addiu $5, %lo(0f - 3f) |
| 0: |
| li $4, %hi(2f - 0b) |
| sll $4, 16 |
| addiu $4, %lo(2f - 0b) |
| li $5, %hi(0b - 3f) |
| sll $5, 16 |
| addiu $5, %lo(0b - 3f) |
| 1: |
| .insn |
| .fill 0x8000 - (1b - 0b) |
| 2: |
| .insn |
| .fill 0x8004 - (2b - 0b) |
| 3: |
| li $4, %hi(2b - 0b) |
| sll $4, 16 |
| addiu $4, %lo(2b - 0b) |
| li $5, %hi(0b - 3b) |
| sll $5, 16 |
| addiu $5, %lo(0b - 3b) |
| |
| li $4, %hi(2f - 0f) |
| sll $4, 16 |
| addiu $4, %lo(2f - 0f) |
| li $5, %hi(0f - 3f) |
| sll $5, 16 |
| addiu $5, %lo(0f - 3f) |
| 0: |
| li $4, %hi(2f - 0b) |
| sll $4, 16 |
| addiu $4, %lo(2f - 0b) |
| li $5, %hi(0b - 3f) |
| sll $5, 16 |
| addiu $5, %lo(0b - 3f) |
| 1: |
| .insn |
| .fill 0x11ffdc - (1b - 0b) |
| 2: |
| .insn |
| .fill 0 |
| 3: |
| li $4, %hi(2b - 0b) |
| sll $4, 16 |
| addiu $4, %lo(2b - 0b) |
| li $5, %hi(0b - 3b) |
| sll $5, 16 |
| addiu $5, %lo(0b - 3b) |
| |
| # Force some (non-delay-slot) zero bytes, to make 'objdump' print ... |
| .align 4, 0 |
| .space 16 |