diff options
Diffstat (limited to 'ld/testsuite/ld-arm/group-relocs.s')
-rw-r--r-- | ld/testsuite/ld-arm/group-relocs.s | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/ld/testsuite/ld-arm/group-relocs.s b/ld/testsuite/ld-arm/group-relocs.s index b6467f4f0e..7b226c7288 100644 --- a/ld/testsuite/ld-arm/group-relocs.s +++ b/ld/testsuite/ld-arm/group-relocs.s @@ -28,11 +28,14 @@ _start: @ ALU, SB-relative + @ Instructions start at .text + 0x18 add r0, r0, #:sb_g0:(one_group_needed_alu_sb) - add r0, r15, #:sb_g0_nc:(two_groups_needed_alu_sb) + @ Instructions start at .text + 0x1c + add r0, r0, #:sb_g0_nc:(two_groups_needed_alu_sb) add r0, r0, #:sb_g1:(two_groups_needed_alu_sb) + @ Instructions start at .text + 0x24 add r0, r0, #:sb_g0_nc:(three_groups_needed_alu_sb) add r0, r0, #:sb_g1_nc:(three_groups_needed_alu_sb) add r0, r0, #:sb_g2:(three_groups_needed_alu_sb) @@ -40,21 +43,24 @@ _start: @ LDR, PC-relative @ Instructions start at .text + 0x30 - add r0, r0, #:pc_g0_nc:(two_groups_needed_ldr_pc) + add r0, pc, #:pc_g0_nc:(two_groups_needed_ldr_pc) ldr r1, [r0, #:pc_g1:(two_groups_needed_ldr_pc + 4)] @ Instructions start at .text + 0x38 - add r0, r0, #:pc_g0_nc:(three_groups_needed_ldr_pc) + add r0, pc, #:pc_g0_nc:(three_groups_needed_ldr_pc) add r0, r0, #:pc_g1_nc:(three_groups_needed_ldr_pc + 4) ldr r1, [r0, #:pc_g2:(three_groups_needed_ldr_pc + 8)] @ LDR, SB-relative + @ Instructions start at .text + 0x44 ldr r1, [r0, #:sb_g0:(one_group_needed_ldr_sb)] + @ Instructions start at .text + 0x48 add r0, r0, #:sb_g0_nc:(two_groups_needed_ldr_sb) ldr r1, [r0, #:sb_g1:(two_groups_needed_ldr_sb)] + @ Instructions start at .text + 0x50 add r0, r0, #:sb_g0_nc:(three_groups_needed_ldr_sb) add r0, r0, #:sb_g1_nc:(three_groups_needed_ldr_sb) ldr r1, [r0, #:sb_g2:(three_groups_needed_ldr_sb)] @@ -62,24 +68,27 @@ _start: @ LDRS, PC-relative @ Instructions start at .text + 0x5c - ldrd r2, [r0, #:pc_g0:(one_group_needed_ldrs_pc)] + ldrd r2, [pc, #:pc_g0:(one_group_needed_ldrs_pc)] @ Instructions start at .text + 0x60 - add r0, r0, #:pc_g0_nc:(two_groups_needed_ldrs_pc) + add r0, pc, #:pc_g0_nc:(two_groups_needed_ldrs_pc) ldrd r2, [r0, #:pc_g1:(two_groups_needed_ldrs_pc + 4)] @ Instructions start at .text + 0x68 - add r0, r0, #:pc_g0_nc:(three_groups_needed_ldrs_pc) + add r0, pc, #:pc_g0_nc:(three_groups_needed_ldrs_pc) add r0, r0, #:pc_g1_nc:(three_groups_needed_ldrs_pc + 4) ldrd r2, [r0, #:pc_g2:(three_groups_needed_ldrs_pc + 8)] @ LDRS, SB-relative + @ Instructions start at .text + 0x74 ldrd r2, [r0, #:sb_g0:(one_group_needed_ldrs_sb)] + @ Instructions start at .text + 0x78 add r0, r0, #:sb_g0_nc:(two_groups_needed_ldrs_sb) ldrd r2, [r0, #:sb_g1:(two_groups_needed_ldrs_sb)] + @ Instructions start at .text + 0x80 add r0, r0, #:sb_g0_nc:(three_groups_needed_ldrs_sb) add r0, r0, #:sb_g1_nc:(three_groups_needed_ldrs_sb) ldrd r2, [r0, #:sb_g2:(three_groups_needed_ldrs_sb)] @@ -87,24 +96,27 @@ _start: @ LDC, PC-relative @ Instructions start at .text + 0x8c - ldc 0, c0, [r0, #:pc_g0:(one_group_needed_ldc_pc)] + ldc 0, c0, [pc, #:pc_g0:(one_group_needed_ldc_pc)] @ Instructions start at .text + 0x90 - add r0, r0, #:pc_g0_nc:(two_groups_needed_ldc_pc) + add r0, pc, #:pc_g0_nc:(two_groups_needed_ldc_pc) ldc 0, c0, [r0, #:pc_g1:(two_groups_needed_ldc_pc + 4)] @ Instructions start at .text + 0x98 - add r0, r0, #:pc_g0_nc:(three_groups_needed_ldc_pc) + add r0, pc, #:pc_g0_nc:(three_groups_needed_ldc_pc) add r0, r0, #:pc_g1_nc:(three_groups_needed_ldc_pc + 4) ldc 0, c0, [r0, #:pc_g2:(three_groups_needed_ldc_pc + 8)] @ LDC, SB-relative + @ Instructions start at .text + 0xa4 ldc 0, c0, [r0, #:sb_g0:(one_group_needed_ldc_sb)] + @ Instructions start at .text + 0xa8 add r0, r0, #:sb_g0_nc:(two_groups_needed_ldc_sb) ldc 0, c0, [r0, #:sb_g1:(two_groups_needed_ldc_sb)] + @ Instructions start at .text + 0xb0 add r0, r0, #:sb_g0_nc:(three_groups_needed_ldc_sb) add r0, r0, #:sb_g1_nc:(three_groups_needed_ldc_sb) ldc 0, c0, [r0, #:sb_g2:(three_groups_needed_ldc_sb)] @@ -116,24 +128,33 @@ one_group_needed_ldrs_pc: one_group_needed_ldc_pc: mov r0, #0 -@ We will place the section zero at 0x0. +@ We will place the section .data at 0x03000000 - .section zero, "x" + .data + .word 0, 0, 0 one_group_needed_alu_sb: one_group_needed_ldr_sb: one_group_needed_ldrs_sb: one_group_needed_ldc_sb: - mov r0, #0 + .word 1 @ Offset 0xc + .fill 0xeef0 - 16, 1, 0 +two_groups_needed_alu_sb: +two_groups_needed_ldr_sb: +two_groups_needed_ldrs_sb: +two_groups_needed_ldc_sb: + .word 2 @ Offset 0xeef0 + .fill 0xffeef0 - 0xeef0 - 4, 1, 0 +three_groups_needed_alu_sb: +three_groups_needed_ldr_sb: +three_groups_needed_ldrs_sb: +three_groups_needed_ldc_sb: + .word 3 @ Offset 0xffeef0 @ We will place the section alpha at 0xeef0. .section alpha, "x" -two_groups_needed_alu_sb: -two_groups_needed_ldr_sb: -two_groups_needed_ldrs_sb: -two_groups_needed_ldc_sb: two_groups_needed_alu_pc: two_groups_needed_ldr_pc: two_groups_needed_ldrs_pc: @@ -144,10 +165,6 @@ two_groups_needed_ldc_pc: .section beta, "x" -three_groups_needed_alu_sb: -three_groups_needed_ldr_sb: -three_groups_needed_ldrs_sb: -three_groups_needed_ldc_sb: three_groups_needed_alu_pc: three_groups_needed_ldr_pc: three_groups_needed_ldrs_pc: |