From 97158ca5c26c759ccdc81ef01a3f94f2fdb264c6 Mon Sep 17 00:00:00 2001 From: Jack Carter Date: Fri, 7 Sep 2012 01:42:38 +0000 Subject: The Mips standalone assembler aliased instruction support. The assembler can alias one instruction into another based on the operands. For example the jump instruction "J" takes and immediate operand, but if the operand is a register the assembler will change it into a jump register "JR" instruction. These changes are in the instruction td file. Test cases included Contributer: Vladimir Medic llvm-svn: 163368 --- llvm/test/MC/Mips/mips-alu-instructions.s | 19 +++++++++++++++++++ llvm/test/MC/Mips/mips-jump-instructions.s | 8 ++++++++ 2 files changed, 27 insertions(+) (limited to 'llvm/test/MC') diff --git a/llvm/test/MC/Mips/mips-alu-instructions.s b/llvm/test/MC/Mips/mips-alu-instructions.s index fb816e51e6e..2997782cd01 100644 --- a/llvm/test/MC/Mips/mips-alu-instructions.s +++ b/llvm/test/MC/Mips/mips-alu-instructions.s @@ -7,6 +7,7 @@ #------------------------------------------------------------------------------ # CHECK: and $9, $6, $7 # encoding: [0x24,0x48,0xc7,0x00] # CHECK: andi $9, $6, 17767 # encoding: [0x67,0x45,0xc9,0x30] +# CHECK: andi $9, $6, 17767 # encoding: [0x67,0x45,0xc9,0x30] # CHECK: clo $6, $7 # encoding: [0x21,0x30,0xe6,0x70] # CHECK: clz $6, $7 # encoding: [0x20,0x30,0xe6,0x70] # CHECK: ins $19, $9, 6, 7 # encoding: [0x84,0x61,0x33,0x7d] @@ -19,6 +20,7 @@ # CHECK: sllv $2, $3, $5 # encoding: [0x04,0x10,0xa3,0x00] # CHECK: slt $3, $3, $5 # encoding: [0x2a,0x18,0x65,0x00] # CHECK: slti $3, $3, 103 # encoding: [0x67,0x00,0x63,0x28] +# CHECK: slti $3, $3, 103 # encoding: [0x67,0x00,0x63,0x28] # CHECK: sltiu $3, $3, 103 # encoding: [0x67,0x00,0x63,0x2c] # CHECK: sltu $3, $3, $5 # encoding: [0x2b,0x18,0x65,0x00] # CHECK: sra $4, $3, 7 # encoding: [0xc3,0x21,0x03,0x00] @@ -26,9 +28,12 @@ # CHECK: srl $4, $3, 7 # encoding: [0xc2,0x21,0x03,0x00] # CHECK: srlv $2, $3, $5 # encoding: [0x06,0x10,0xa3,0x00] # CHECK: xor $3, $3, $5 # encoding: [0x26,0x18,0x65,0x00] +# CHECK: xori $9, $6, 17767 # encoding: [0x67,0x45,0xc9,0x38] # CHECK: xori $9, $6, 17767 # encoding: [0x67,0x45,0xc9,0x38] # CHECK: wsbh $6, $7 # encoding: [0xa0,0x30,0x07,0x7c] +# CHECK: nor $7, $8, $zero # encoding: [0x27,0x38,0x00,0x01] and $9, $6, $7 + and $9, $6, 17767 andi $9, $6, 17767 clo $6, $7 clz $6, $7 @@ -41,6 +46,7 @@ sll $4, $3, 7 sllv $2, $3, $5 slt $3, $3, $5 + slt $3, $3, 103 slti $3, $3, 103 sltiu $3, $3, 103 sltu $3, $3, $5 @@ -49,8 +55,11 @@ srl $4, $3, 7 srlv $2, $3, $5 xor $3, $3, $5 + xor $9, $6, 17767 xori $9, $6, 17767 wsbh $6, $7 + not $7 ,$8 + #------------------------------------------------------------------------------ # Arithmetic instructions #------------------------------------------------------------------------------ @@ -58,6 +67,8 @@ # CHECK: add $9, $6, $7 # encoding: [0x20,0x48,0xc7,0x00] # CHECK: addi $9, $6, 17767 # encoding: [0x67,0x45,0xc9,0x20] # CHECK: addiu $9, $6, -15001 # encoding: [0x67,0xc5,0xc9,0x24] +# CHECK: addi $9, $6, 17767 # encoding: [0x67,0x45,0xc9,0x20] +# CHECK: addiu $9, $6, -15001 # encoding: [0x67,0xc5,0xc9,0x24] # CHECK: addu $9, $6, $7 # encoding: [0x21,0x48,0xc7,0x00] # CHECK: madd $6, $7 # encoding: [0x00,0x00,0xc7,0x70] # CHECK: maddu $6, $7 # encoding: [0x01,0x00,0xc7,0x70] @@ -67,7 +78,12 @@ # CHECK: multu $3, $5 # encoding: [0x19,0x00,0x65,0x00] # CHECK: sub $9, $6, $7 # encoding: [0x22,0x48,0xc7,0x00] # CHECK: subu $4, $3, $5 # encoding: [0x23,0x20,0x65,0x00] +# CHECK: sub $6, $zero, $7 # encoding: [0x22,0x30,0x07,0x00] +# CHECK: subu $6, $zero, $7 # encoding: [0x23,0x30,0x07,0x00] +# CHECK: add $7, $8, $zero # encoding: [0x20,0x38,0x00,0x01] add $9,$6,$7 + add $9,$6,17767 + addu $9,$6,-15001 addi $9,$6,17767 addiu $9,$6,-15001 addu $9,$6,$7 @@ -79,3 +95,6 @@ multu $3,$5 sub $9,$6,$7 subu $4,$3,$5 + neg $6,$7 + negu $6,$7 + move $7,$8 diff --git a/llvm/test/MC/Mips/mips-jump-instructions.s b/llvm/test/MC/Mips/mips-jump-instructions.s index 5188751fe85..998be418d20 100644 --- a/llvm/test/MC/Mips/mips-jump-instructions.s +++ b/llvm/test/MC/Mips/mips-jump-instructions.s @@ -22,6 +22,8 @@ # CHECK: blez $6, 1332 # encoding: [0x34,0x05,0xc0,0x18] # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] # CHECK: bne $9, $6, 1332 # encoding: [0x34,0x05,0x26,0x15] +# CHECK: nop # encoding: [0x00,0x00,0x00,0x00] +# CHECK: bal 1332 # encoding: [0x34,0x05,0x00,0x04] # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] b 1332 nop @@ -41,6 +43,8 @@ nop bne $9,$6,1332 nop + bal 1332 + nop end_of_code: #------------------------------------------------------------------------------ @@ -52,6 +56,8 @@ end_of_code: # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] # CHECK: jalr $6 # encoding: [0x09,0xf8,0xc0,0x00] # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] +# CHECK: jr $7 # encoding: [0x08,0x00,0xe0,0x00] +# CHECK: nop # encoding: [0x00,0x00,0x00,0x00] # CHECK: jr $7 # encoding: [0x08,0x00,0xe0,0x00] @@ -62,3 +68,5 @@ end_of_code: jalr $6 nop jr $7 + nop + j $7 -- cgit v1.2.3