1## Test valid misc instructions. 2 3# RUN: llvm-mc %s --triple=loongarch32 --show-encoding \ 4# RUN: | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s 5# RUN: llvm-mc %s --triple=loongarch64 --show-encoding --defsym=LA64=1 \ 6# RUN: | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ,CHECK64-ASM,CHECK64-ASM-AND-OBJ %s 7# RUN: llvm-mc %s --triple=loongarch32 --filetype=obj | llvm-objdump -d - \ 8# RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s 9# RUN: llvm-mc %s --triple=loongarch64 --filetype=obj --defsym=LA64=1 | llvm-objdump -d - \ 10# RUN: | FileCheck --check-prefixes=CHECK-ASM-AND-OBJ,CHECK64-ASM-AND-OBJ %s 11 12############################################################# 13## Instructions for both loongarch32 and loongarch64 14############################################################# 15 16# CHECK-ASM-AND-OBJ: syscall 100 17# CHECK-ASM: encoding: [0x64,0x00,0x2b,0x00] 18syscall 100 19 20# CHECK-ASM-AND-OBJ: break 199 21# CHECK-ASM: encoding: [0xc7,0x00,0x2a,0x00] 22break 199 23 24# CHECK-ASM-AND-OBJ: rdtimel.w $s1, $a0 25# CHECK-ASM: encoding: [0x98,0x60,0x00,0x00] 26rdtimel.w $s1, $a0 27 28# CHECK-ASM-AND-OBJ: rdtimeh.w $a7, $a1 29# CHECK-ASM: encoding: [0xab,0x64,0x00,0x00] 30rdtimeh.w $a7, $a1 31 32# CHECK-ASM-AND-OBJ: cpucfg $sp, $a4 33# CHECK-ASM: encoding: [0x03,0x6d,0x00,0x00] 34cpucfg $sp, $a4 35 36 37############################################################# 38## Instructions only for loongarch64 39############################################################# 40 41.ifdef LA64 42 43# CHECK64-ASM-AND-OBJ: asrtle.d $t0, $t5 44# CHECK64-ASM: encoding: [0x80,0x45,0x01,0x00] 45asrtle.d $t0, $t5 46 47# CHECK64-ASM-AND-OBJ: asrtgt.d $t8, $t8 48# CHECK64-ASM: encoding: [0x80,0xd2,0x01,0x00] 49asrtgt.d $t8, $t8 50 51# CHECK64-ASM-AND-OBJ: rdtime.d $tp, $t3 52# CHECK64-ASM: encoding: [0xe2,0x69,0x00,0x00] 53rdtime.d $tp, $t3 54 55.endif 56 57