From 1ade566c451c1aa7f0dc70d2a4e37874d5105c2c Mon Sep 17 00:00:00 2001 From: Simon Dardis Date: Tue, 19 Dec 2017 11:16:22 +0000 Subject: [mips] Handle the emission of microMIPSr6 sll instruction when used as a nop. This instruction is encoded as zero, so we have handle that case when checking for unimplemented opcodes when producing the encoding for an instruction. llvm-svn: 321066 --- .../CodeGen/Mips/sll-micromips-r6-encoding.mir | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir (limited to 'llvm/test/CodeGen/Mips') diff --git a/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir b/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir new file mode 100644 index 00000000000..85ce251ac31 --- /dev/null +++ b/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir @@ -0,0 +1,46 @@ +# RUN: llc -march=mips -mcpu=mips32r6 -mattr=+micromips %s -start-after=xray-instrumentation -o - -show-mc-encoding | FileCheck %s + +# Test that the 'sll $zero, $zero, 0' is correctly recognized as a real +# instruction rather than some unimplemented opcode for the purposes of +# encoding an instruction. + +# CHECK-LABEL: a: +# CHECK: nop # encoding: [0x00,0x00,0x00,0x00] +# CHECK: jrc $ra # encoding: [0x45,0xbf] +--- +name: a +alignment: 2 +exposesReturnsTwice: false +legalized: false +regBankSelected: false +selected: false +tracksRegLiveness: false +registers: +liveins: + - { reg: '%a0', virtual-reg: '' } +frameInfo: + isFrameAddressTaken: false + isReturnAddressTaken: false + hasStackMap: false + hasPatchPoint: false + stackSize: 0 + offsetAdjustment: 0 + maxAlignment: 1 + adjustsStack: false + hasCalls: false + stackProtector: '' + maxCallFrameSize: 0 + hasOpaqueSPAdjustment: false + hasVAStart: false + hasMustTailInVarArgFunc: false + savePoint: '' + restorePoint: '' +fixedStack: +stack: +constants: +body: | + bb.0.entry: + renamable %zero = SLL_MMR6 killed renamable %zero, 0 + JRC16_MM undef %ra, implicit %v0 + +... -- cgit v1.2.3