mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
815d6131a4
Summary: - Signed 16-bit should have priority over unsigned. - For la, unsigned 16-bit must use ori+addu rather than directly use ori. - Correct tests on 32-bit immediates with 64-bit predicates by sign-extending the immediate beforehand. For example, isInt<16>(0xffff8000) should be true and use addiu. Also split li/la testing into separate files due to their size. Reviewers: vkalintiris Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10967 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242139 91177308-0d34-0410-b5e6-96231b3b80d8
40 lines
1.8 KiB
ArmAsm
40 lines
1.8 KiB
ArmAsm
# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r2 2>%t1
|
|
# RUN: FileCheck %s < %t1 --check-prefix=32-BIT
|
|
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 2>&1 | \
|
|
# RUN: FileCheck %s --check-prefix=64-BIT --check-prefix=N32-ONLY
|
|
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 2>&1 | \
|
|
# RUN: FileCheck %s --check-prefix=64-BIT --check-prefix=N64-ONLY
|
|
|
|
.text
|
|
dli $5, 1
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction requires a 64-bit architecture
|
|
bne $2, 0x100010001, 1332
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction requires a 32-bit immediate
|
|
beq $2, 0x100010001, 1332
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction requires a 32-bit immediate
|
|
.set mips32r6
|
|
ulhu $5, 0
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
# 64-BIT: :[[@LINE-2]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
.set mips32
|
|
ulhu $5, 1
|
|
# 32-BIT-NOT: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
# 64-BIT-NOT: :[[@LINE-2]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
.set mips64r6
|
|
ulhu $5, 2
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
# 64-BIT: :[[@LINE-2]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
|
|
.set mips32r6
|
|
ulw $5, 0
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
# 64-BIT: :[[@LINE-2]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
.set mips32
|
|
ulw $5, 1
|
|
# 32-BIT-NOT: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
# 64-BIT-NOT: :[[@LINE-2]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
.set mips64r6
|
|
ulw $5, 2
|
|
# 32-BIT: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
|
|
# 64-BIT: :[[@LINE-2]]:3: error: instruction not supported on mips32r6 or mips64r6
|