90 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+mops-go,+mte < %s \2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \4// RUN: | FileCheck %s --check-prefix=CHECK-ERROR5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+mops-go,+mte < %s \6// RUN: | llvm-objdump -d --mattr=+mops-go,+mte --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+mops-go,+mte < %s \8// RUN: | llvm-objdump -d --mattr=-mops-go,-mte --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN9// Disassemble encoding and check the re-encoding (-show-encoding) matches.10// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+mops-go,+mte < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+mops-go,+mte -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15//------------------------------------------------------------------------------16// FEAT_MOPS_GO Extension instructions17//------------------------------------------------------------------------------18 19setgop [x3]!, x2!20// CHECK-INST: setgop [x3]!, x2!21// CHECK-ENCODING: [0x43,0x00,0xdf,0x1d]22// CHECK-UNKNOWN: 1ddf004323// CHECK-ERROR: instruction requires: mops-go mte24 25setgom [x3]!, x2!26// CHECK-INST: setgom [x3]!, x2!27// CHECK-ENCODING: [0x43,0x40,0xdf,0x1d]28// CHECK-UNKNOWN: 1ddf404329// CHECK-ERROR: instruction requires: mops-go mte30 31setgoe [x3]!, x2!32// CHECK-INST: setgoe [x3]!, x2!33// CHECK-ENCODING: [0x43,0x80,0xdf,0x1d]34// CHECK-UNKNOWN: 1ddf804335// CHECK-ERROR: instruction requires: mops-go mte36 37setgopn [x3]!, x2!38// CHECK-INST: setgopn [x3]!, x2!39// CHECK-ENCODING: [0x43,0x20,0xdf,0x1d]40// CHECK-UNKNOWN: 1ddf204341// CHECK-ERROR: instruction requires: mops-go mte42 43setgomn [x3]!, x2!44// CHECK-INST: setgomn [x3]!, x2!45// CHECK-ENCODING: [0x43,0x60,0xdf,0x1d]46// CHECK-UNKNOWN: 1ddf604347// CHECK-ERROR: instruction requires: mops-go mte48 49setgoen [x3]!, x2!50// CHECK-INST: setgoen [x3]!, x2!51// CHECK-ENCODING: [0x43,0xa0,0xdf,0x1d]52// CHECK-UNKNOWN: 1ddfa04353// CHECK-ERROR: instruction requires: mops-go mte54 55setgopt [x3]!, x2!56// CHECK-INST: setgopt [x3]!, x2!57// CHECK-ENCODING: [0x43,0x10,0xdf,0x1d]58// CHECK-UNKNOWN: 1ddf104359// CHECK-ERROR: instruction requires: mops-go mte60 61setgomt [x3]!, x2!62// CHECK-INST: setgomt [x3]!, x2!63// CHECK-ENCODING: [0x43,0x50,0xdf,0x1d]64// CHECK-UNKNOWN: 1ddf504365// CHECK-ERROR: instruction requires: mops-go mte66 67setgoet [x3]!, x2!68// CHECK-INST: setgoet [x3]!, x2!69// CHECK-ENCODING: [0x43,0x90,0xdf,0x1d]70// CHECK-UNKNOWN: 1ddf904371// CHECK-ERROR: instruction requires: mops-go mte72 73setgoptn [x3]!, x2!74// CHECK-INST: setgoptn [x3]!, x2!75// CHECK-ENCODING: [0x43,0x30,0xdf,0x1d]76// CHECK-UNKNOWN: 1ddf304377// CHECK-ERROR: instruction requires: mops-go mte78 79setgomtn [x3]!, x2!80// CHECK-INST: setgomtn [x3]!, x2!81// CHECK-ENCODING: [0x43,0x70,0xdf,0x1d]82// CHECK-UNKNOWN: 1ddf704383// CHECK-ERROR: instruction requires: mops-go mte84 85setgoetn [x3]!, x2!86// CHECK-INST: setgoetn [x3]!, x2!87// CHECK-ENCODING: [0x43,0xb0,0xdf,0x1d]88// CHECK-UNKNOWN: 1ddfb04389// CHECK-ERROR: instruction requires: mops-go mte90