brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 1d5ca68 Raw
119 lines · plain
1## Test valid privilege instructions2 3# RUN: llvm-mc %s --triple=loongarch32 --show-encoding \4# RUN:     | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s5# 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 %s7# RUN: llvm-mc %s --triple=loongarch32 --filetype=obj | llvm-objdump -d - \8# RUN:     | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s9# 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 %s11 12#############################################################13## Instructions for both loongarch32 and loongarch6414#############################################################15 16# CHECK-ASM-AND-OBJ: csrrd $s3, 3017# CHECK-ASM: encoding: [0x1a,0x78,0x00,0x04]18csrrd $s3, 3019 20# CHECK-ASM-AND-OBJ: csrwr $s1, 19421# CHECK-ASM: encoding: [0x38,0x08,0x03,0x04]22csrwr $s1, 19423 24# CHECK-ASM-AND-OBJ: csrxchg $a2, $s4, 21425# CHECK-ASM: encoding: [0x66,0x5b,0x03,0x04]26csrxchg $a2, $s4, 21427 28# CHECK-ASM-AND-OBJ: iocsrrd.b $s3, $s129# CHECK-ASM: encoding: [0x1a,0x03,0x48,0x06]30iocsrrd.b $s3, $s131 32# CHECK-ASM-AND-OBJ: iocsrrd.h $a1, $s433# CHECK-ASM: encoding: [0x65,0x07,0x48,0x06]34iocsrrd.h $a1, $s435 36# CHECK-ASM-AND-OBJ: iocsrrd.w $a6, $t837# CHECK-ASM: encoding: [0x8a,0x0a,0x48,0x06]38iocsrrd.w $a6, $t839 40# CHECK-ASM-AND-OBJ: iocsrwr.b $a0, $s041# CHECK-ASM: encoding: [0xe4,0x12,0x48,0x06]42iocsrwr.b $a0, $s043 44# CHECK-ASM-AND-OBJ: iocsrwr.h $a7, $zero45# CHECK-ASM: encoding: [0x0b,0x14,0x48,0x06]46iocsrwr.h $a7, $zero47 48# CHECK-ASM-AND-OBJ: iocsrwr.w $t8, $s349# CHECK-ASM: encoding: [0x54,0x1b,0x48,0x06]50iocsrwr.w $t8, $s351 52# CHECK-ASM-AND-OBJ: cacop 0, $a6, 2753# CHECK-ASM: encoding: [0x40,0x6d,0x00,0x06]54cacop 0, $a6, 2755 56# CHECK-ASM-AND-OBJ: tlbclr57# CHECK-ASM: encoding: [0x00,0x20,0x48,0x06]58tlbclr59 60# CHECK-ASM-AND-OBJ: tlbflush61# CHECK-ASM: encoding: [0x00,0x24,0x48,0x06]62tlbflush63 64# CHECK-ASM-AND-OBJ: tlbsrch65# CHECK-ASM: encoding: [0x00,0x28,0x48,0x06]66tlbsrch67 68# CHECK-ASM-AND-OBJ: tlbrd69# CHECK-ASM: encoding: [0x00,0x2c,0x48,0x06]70tlbrd71 72# CHECK-ASM-AND-OBJ: tlbwr73# CHECK-ASM: encoding: [0x00,0x30,0x48,0x06]74tlbwr75 76# CHECK-ASM-AND-OBJ: tlbfill77# CHECK-ASM: encoding: [0x00,0x34,0x48,0x06]78tlbfill79 80# CHECK-ASM-AND-OBJ: invtlb 16, $s6, $s281# CHECK-ASM: encoding: [0xb0,0xe7,0x49,0x06]82invtlb 16, $s6, $s283 84# CHECK-ASM-AND-OBJ: lddir $t0, $s7, 9285# CHECK-ASM: encoding: [0xcc,0x73,0x41,0x06]86lddir $t0, $s7, 9287 88# CHECK-ASM-AND-OBJ: ldpte $t6, 20089# CHECK-ASM: encoding: [0x40,0x22,0x47,0x06]90ldpte $t6, 20091 92# CHECK-ASM-AND-OBJ: ertn93# CHECK-ASM: encoding: [0x00,0x38,0x48,0x06]94ertn95 96# CHECK-ASM-AND-OBJ: dbcl 20197# CHECK-ASM: encoding: [0xc9,0x80,0x2a,0x00]98dbcl 20199 100# CHECK-ASM-AND-OBJ: idle 204101# CHECK-ASM: encoding: [0xcc,0x80,0x48,0x06]102idle 204103 104#############################################################105## Instructions only for loongarch64106#############################################################107 108.ifdef LA64109 110# CHECK64-ASM-AND-OBJ: iocsrrd.d $t5, $s2111# CHECK64-ASM: encoding: [0x31,0x0f,0x48,0x06]112iocsrrd.d $t5, $s2113 114# CHECK64-ASM-AND-OBJ: iocsrwr.d $t8, $a3115# CHECK64-ASM: encoding: [0xf4,0x1c,0x48,0x06]116iocsrwr.d $t8, $a3117 118.endif119