diff options
Diffstat (limited to 'test/MC/AArch64/ldr-pseudo.s')
-rw-r--r-- | test/MC/AArch64/ldr-pseudo.s | 152 |
1 files changed, 120 insertions, 32 deletions
diff --git a/test/MC/AArch64/ldr-pseudo.s b/test/MC/AArch64/ldr-pseudo.s index 6c82fb9..1bdb5d6 100644 --- a/test/MC/AArch64/ldr-pseudo.s +++ b/test/MC/AArch64/ldr-pseudo.s @@ -23,21 +23,21 @@ f1: .section b,"ax",@progbits // CHECK-LABEL: f3: f3: - ldr x0, =0x10001 -// CHECK: ldr x0, .Ltmp[[TMP0:[0-9]+]] + ldr w0, =0x10001 +// CHECK: ldr w0, .Ltmp[[TMP0:[0-9]+]] // loading multiple constants .section c,"ax",@progbits // CHECK-LABEL: f4: f4: - ldr x0, =0x10002 -// CHECK: ldr x0, .Ltmp[[TMP1:[0-9]+]] + ldr w0, =0x10002 +// CHECK: ldr w0, .Ltmp[[TMP1:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 adds x0, x0, #1 adds x0, x0, #1 - ldr x0, =0x10003 -// CHECK: ldr x0, .Ltmp[[TMP2:[0-9]+]] + ldr w0, =0x10003 +// CHECK: ldr w0, .Ltmp[[TMP2:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 @@ -45,8 +45,8 @@ f4: .section d,"ax",@progbits // CHECK-LABEL: f5: f5: - ldr x0, =0x10004 -// CHECK: ldr x0, .Ltmp[[TMP3:[0-9]+]] + ldr w0, =0x10004 +// CHECK: ldr w0, .Ltmp[[TMP3:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 adds x0, x0, #1 @@ -54,8 +54,8 @@ f5: adds x0, x0, #1 adds x0, x0, #1 adds x0, x0, #1 - ldr x0, =0x10004 -// CHECK: ldr x0, .Ltmp[[TMP4:[0-9]+]] + ldr w0, =0x10004 +// CHECK: ldr w0, .Ltmp[[TMP4:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 adds x0, x0, #1 @@ -67,8 +67,8 @@ f5: .section e,"ax",@progbits // CHECK-LABEL: f6: f6: - ldr x0, =0x10006 -// CHECK: ldr x0, .Ltmp[[TMP5:[0-9]+]] + ldr w0, =0x10006 +// CHECK: ldr w0, .Ltmp[[TMP5:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 adds x0, x0, #1 @@ -84,8 +84,8 @@ f7: // CHECK-LABEL: f8: f8: adds x0, x0, #1 - ldr x0, =0x10007 -// CHECK: ldr x0, .Ltmp[[TMP6:[0-9]+]] + ldr w0, =0x10007 +// CHECK: ldr w0, .Ltmp[[TMP6:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 @@ -97,22 +97,22 @@ f8: .section g,"ax",@progbits // CHECK-LABEL: f9: f9: - ldr x0, =foo -// CHECK: ldr x0, .Ltmp[[TMP7:[0-9]+]] + ldr w0, =foo +// CHECK: ldr w0, .Ltmp[[TMP7:[0-9]+]] // load a symbol from another section .section h,"ax",@progbits // CHECK-LABEL: f10: f10: - ldr x0, =f5 -// CHECK: ldr x0, .Ltmp[[TMP8:[0-9]+]] + ldr w0, =f5 +// CHECK: ldr w0, .Ltmp[[TMP8:[0-9]+]] // load a symbol from the same section .section i,"ax",@progbits // CHECK-LABEL: f11: f11: - ldr x0, =f12 -// CHECK: ldr x0, .Ltmp[[TMP9:[0-9]+]] + ldr w0, =f12 +// CHECK: ldr w0, .Ltmp[[TMP9:[0-9]+]] ldr w0,=0x3C000 // CHECK: ldr w0, .Ltmp[[TMP10:[0-9]+]] @@ -127,12 +127,12 @@ f12: f13: adds x0, x0, #1 adds x0, x0, #1 - ldr x0, =0x101 -// CHECK: movz x0, #0x101 + ldr w0, =0x101 +// CHECK: movz w0, #0x101 adds x0, x0, #1 adds x0, x0, #1 - ldr x0, =bar -// CHECK: ldr x0, .Ltmp[[TMP11:[0-9]+]] + ldr w0, =bar +// CHECK: ldr w0, .Ltmp[[TMP11:[0-9]+]] adds x0, x0, #1 adds x0, x0, #1 // @@ -141,27 +141,70 @@ f13: // usage in macro .macro useit_in_a_macro - ldr x0, =0x10008 - ldr x0, =baz + ldr w0, =0x10008 + ldr w0, =baz .endm .section k,"ax",@progbits // CHECK-LABEL: f14: f14: useit_in_a_macro -// CHECK: ldr x0, .Ltmp[[TMP12:[0-9]+]] -// CHECK: ldr x0, .Ltmp[[TMP13:[0-9]+]] +// CHECK: ldr w0, .Ltmp[[TMP12:[0-9]+]] +// CHECK: ldr w0, .Ltmp[[TMP13:[0-9]+]] // usage with expressions .section l, "ax", @progbits // CHECK-LABEL: f15: f15: - ldr x0, =0x10001+8 -// CHECK: ldr x0, .Ltmp[[TMP14:[0-9]+]] + ldr w0, =0x10001+8 +// CHECK: ldr w0, .Ltmp[[TMP14:[0-9]+]] adds x0, x0, #1 - ldr x0, =bar+4 -// CHECK: ldr x0, .Ltmp[[TMP15:[0-9]+]] + ldr w0, =bar+4 +// CHECK: ldr w0, .Ltmp[[TMP15:[0-9]+]] adds x0, x0, #1 +// usage with 64-bit regs +.section m, "ax", @progbits +// CHECK-LABEL: f16: +f16: + ldr x0, =0x0102030405060708 +// CHECK: ldr x0, .Ltmp[[TMP16:[0-9]+]] + add x0, x0, #1 + ldr w0, =bar +// CHECK: ldr w0, .Ltmp[[TMP17:[0-9]+]] + ldr x0, =bar+16 +// CHECK: ldr x0, .Ltmp[[TMP18:[0-9]+]] + add x0, x0, #1 + ldr x0, =0x100000001 +// CHECK: ldr x0, .Ltmp[[TMP19:[0-9]+]] + ldr x1, =-0x80000001 +// CHECK: ldr x1, .Ltmp[[TMP20:[0-9]+]] + ldr x2, =0x10001 +// CHECK: ldr x2, .Ltmp[[TMP21:[0-9]+]] + +// check range for 32-bit regs +.section n, "ax", @progbits +// CHECK-LABEL: f17: +f17: + ldr w0, =0xFFFFFFFF +// CHECK: ldr w0, .Ltmp[[TMP22:[0-9]+]] + add w0, w0, #1 + ldr w1, =-0x7FFFFFFF +// CHECK: ldr w1, .Ltmp[[TMP23:[0-9]+]] + add w0, w0, #1 + ldr w0, =-1 +// CHECK: ldr w0, .Ltmp[[TMP24:[0-9]+]] + add w0, w0, #1 + +// make sure the same contant uses different pools for 32- and 64-bit registers +.section o, "ax", @progbits +// CHECK-LABEL: f18: +f18: + ldr w0, =0x320064 +// CHECK: ldr w0, .Ltmp[[TMP25:[0-9]+]] + add w0, w0, #1 + ldr x1, =0x320064 +// CHECK: ldr x1, .Ltmp[[TMP26:[0-9]+]] + // // Constant Pools // @@ -174,6 +217,7 @@ f15: // CHECK: .align 2 // CHECK: .Ltmp[[TMP1]] // CHECK: .word 65538 +// CHECK: .align 2 // CHECK: .Ltmp[[TMP2]] // CHECK: .word 65539 @@ -181,6 +225,7 @@ f15: // CHECK: .align 2 // CHECK: .Ltmp[[TMP3]] // CHECK: .word 65540 +// CHECK: .align 2 // CHECK: .Ltmp[[TMP4]] // CHECK: .word 65540 @@ -188,6 +233,7 @@ f15: // CHECK: .align 2 // CHECK: .Ltmp[[TMP5]] // CHECK: .word 65542 +// CHECK: .align 2 // CHECK: .Ltmp[[TMP6]] // CHECK: .word 65543 @@ -208,6 +254,7 @@ f15: // CHECK: .align 2 // CHECK: .Ltmp[[TMP9]] // CHECK: .word f12 +// CHECK: .align 2 // CHECK: .Ltmp[[TMP10]] // CHECK: .word 245760 @@ -220,6 +267,7 @@ f15: // CHECK: .align 2 // CHECK: .Ltmp[[TMP12]] // CHECK: .word 65544 +// CHECK: .align 2 // CHECK: .Ltmp[[TMP13]] // CHECK: .word baz @@ -227,5 +275,45 @@ f15: // CHECK: .align 2 // CHECK: .Ltmp[[TMP14]] // CHECK: .word 65545 +// CHECK: .align 2 // CHECK: .Ltmp[[TMP15]] // CHECK: .word bar+4 + +// CHECK: .section m,"ax",@progbits +// CHECK: .align 3 +// CHECK: .Ltmp[[TMP16]] +// CHECK: .xword 72623859790382856 +// CHECK: .align 2 +// CHECK: .Ltmp[[TMP17]] +// CHECK: .word bar +// CHECK: .align 3 +// CHECK: .Ltmp[[TMP18]] +// CHECK: .xword bar+16 +// CHECK: .align 3 +// CHECK: .Ltmp[[TMP19]] +// CHECK: .xword 4294967297 +// CHECK: .align 3 +// CHECK: .Ltmp[[TMP20]] +// CHECK: .xword -2147483649 +// CHECK: .align 3 +// CHECK: .Ltmp[[TMP21]] +// CHECK: .xword 65537 + +// CHECK: .section n,"ax",@progbits +// CHECK: .align 2 +// CHECK: .Ltmp[[TMP22]] +// CHECK: .word 4294967295 +// CHECK: .align 2 +// CHECK: .Ltmp[[TMP23]] +// CHECK: .word -2147483647 +// CHECK: .align 2 +// CHECK: .Ltmp[[TMP24]] +// CHECK: .word -1 + +// CHECK: .section o,"ax",@progbits +// CHECK: .align 2 +// CHECK: .Ltmp[[TMP25]] +// CHECK: .word 3276900 +// CHECK: .align 3 +// CHECK: .Ltmp[[TMP26]] +// CHECK: .xword 3276900 |