mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
56c9e329fb
We have to treat constructs like this as if they were "symbolic", to use the correct codepath to resolve them. This mostly only affects movz etc. because the other uses of classifySymbolRef conservatively treat everything that isn't a constant as if it were a symbol. Differential Revision: https://reviews.llvm.org/D55906 llvm-svn: 349800
41 lines
1.3 KiB
ArmAsm
41 lines
1.3 KiB
ArmAsm
// RUN: llvm-mc -triple aarch64--none-eabi -filetype obj < %s -o - | llvm-objdump -d - | FileCheck %s
|
|
|
|
onepart_before = 0x1234
|
|
twopart_before = 0x12345678
|
|
threepart_before = 0x1234567890AB
|
|
fourpart_before = 0x1234567890ABCDEF
|
|
|
|
// CHECK: mov x0, #1311673391471656960
|
|
// CHECK: mov x0, #1311673391471656960
|
|
movz x0, #:abs_g3:fourpart_before
|
|
movz x0, #:abs_g3:fourpart_after
|
|
// CHECK: mov x0, #20014547599360
|
|
// CHECK: mov x0, #20014547599360
|
|
movz x0, #:abs_g2:threepart_before
|
|
movz x0, #:abs_g2:threepart_after
|
|
// CHECK: movk x0, #22136, lsl #32
|
|
// CHECK: movk x0, #22136, lsl #32
|
|
movk x0, #:abs_g2_nc:fourpart_before
|
|
movk x0, #:abs_g2_nc:fourpart_after
|
|
// CHECK: mov x0, #305397760
|
|
// CHECK: mov x0, #305397760
|
|
movz x0, #:abs_g1:twopart_before
|
|
movz x0, #:abs_g1:twopart_after
|
|
// CHECK: movk x0, #37035, lsl #16
|
|
// CHECK: movk x0, #37035, lsl #16
|
|
movk x0, #:abs_g1_nc:fourpart_before
|
|
movk x0, #:abs_g1_nc:fourpart_after
|
|
// CHECK: mov x0, #4660
|
|
// CHECK: mov x0, #4660
|
|
movz x0, #:abs_g0:onepart_before
|
|
movz x0, #:abs_g0:onepart_after
|
|
// CHECK: movk x0, #52719
|
|
// CHECK: movk x0, #52719
|
|
movk x0, #:abs_g0_nc:fourpart_before
|
|
movk x0, #:abs_g0_nc:fourpart_after
|
|
|
|
onepart_after = 0x1234
|
|
twopart_after = 0x12345678
|
|
threepart_after = 0x1234567890AB
|
|
fourpart_after = 0x1234567890ABCDEF
|