Skip to content

Commit

Permalink
Mips assembler: Add 64 bit testing for JAL
Browse files Browse the repository at this point in the history
Contributer: Vladimir Medic


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180220 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Jack Carter committed Apr 24, 2013
1 parent 802fe93 commit a2b9d3d
Showing 1 changed file with 82 additions and 39 deletions.
121 changes: 82 additions & 39 deletions test/MC/Mips/mips-jump-instructions.s
Original file line number Diff line number Diff line change
@@ -1,30 +1,54 @@
# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
# RUN: FileCheck %s
# RUN: FileCheck -check-prefix=CHECK32 %s
# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips64r2 | \
# RUN: FileCheck -check-prefix=CHECK64 %s

# Check that the assembler can handle the documented syntax
# for jumps and branches.
#------------------------------------------------------------------------------
# Branch instructions
#------------------------------------------------------------------------------
# CHECK: b 1332 # encoding: [0x4d,0x01,0x00,0x10]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bc1f 1332 # encoding: [0x4d,0x01,0x00,0x45]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bc1t 1332 # encoding: [0x4d,0x01,0x01,0x45]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: beq $9, $6, 1332 # encoding: [0x4d,0x01,0x26,0x11]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bgez $6, 1332 # encoding: [0x4d,0x01,0xc1,0x04]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bgezal $6, 1332 # encoding: [0x4d,0x01,0xd1,0x04]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bgtz $6, 1332 # encoding: [0x4d,0x01,0xc0,0x1c]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: blez $6, 1332 # encoding: [0x4d,0x01,0xc0,0x18]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bne $9, $6, 1332 # encoding: [0x4d,0x01,0x26,0x15]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: bal 1332 # encoding: [0x4d,0x01,0x11,0x04]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: b 1332 # encoding: [0x4d,0x01,0x00,0x10]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bc1f 1332 # encoding: [0x4d,0x01,0x00,0x45]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bc1t 1332 # encoding: [0x4d,0x01,0x01,0x45]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: beq $9, $6, 1332 # encoding: [0x4d,0x01,0x26,0x11]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bgez $6, 1332 # encoding: [0x4d,0x01,0xc1,0x04]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bgezal $6, 1332 # encoding: [0x4d,0x01,0xd1,0x04]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bgtz $6, 1332 # encoding: [0x4d,0x01,0xc0,0x1c]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: blez $6, 1332 # encoding: [0x4d,0x01,0xc0,0x18]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bne $9, $6, 1332 # encoding: [0x4d,0x01,0x26,0x15]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: bal 1332 # encoding: [0x4d,0x01,0x11,0x04]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]

# CHECK64: b 1332 # encoding: [0x4d,0x01,0x00,0x10]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bc1f 1332 # encoding: [0x4d,0x01,0x00,0x45]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bc1t 1332 # encoding: [0x4d,0x01,0x01,0x45]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: beq $9, $6, 1332 # encoding: [0x4d,0x01,0x26,0x11]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bgez $6, 1332 # encoding: [0x4d,0x01,0xc1,0x04]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bgezal $6, 1332 # encoding: [0x4d,0x01,0xd1,0x04]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bgtz $6, 1332 # encoding: [0x4d,0x01,0xc0,0x1c]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: blez $6, 1332 # encoding: [0x4d,0x01,0xc0,0x18]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bne $9, $6, 1332 # encoding: [0x4d,0x01,0x26,0x15]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: bal 1332 # encoding: [0x4d,0x01,0x11,0x04]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]

.set noreorder

Expand Down Expand Up @@ -53,24 +77,43 @@ end_of_code:
#------------------------------------------------------------------------------
# Jump instructions
#------------------------------------------------------------------------------
# CHECK: j 1328 # encoding: [0x4c,0x01,0x00,0x08]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: jal 1328 # encoding: [0x4c,0x01,0x00,0x0c]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: jalr $6 # encoding: [0x09,0xf8,0xc0,0x00]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: jalr $25 # encoding: [0x09,0xf8,0x20,0x03]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: jalr $10, $11 # encoding: [0x09,0x50,0x60,0x01]
# 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]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: jalr $25 # encoding: [0x09,0xf8,0x20,0x03]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: jalr $4, $25 # encoding: [0x09,0x20,0x20,0x03]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: j 1328 # encoding: [0x4c,0x01,0x00,0x08]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jal 1328 # encoding: [0x4c,0x01,0x00,0x0c]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jalr $6 # encoding: [0x09,0xf8,0xc0,0x00]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jalr $25 # encoding: [0x09,0xf8,0x20,0x03]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jalr $10, $11 # encoding: [0x09,0x50,0x60,0x01]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jr $7 # encoding: [0x08,0x00,0xe0,0x00]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jr $7 # encoding: [0x08,0x00,0xe0,0x00]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jalr $25 # encoding: [0x09,0xf8,0x20,0x03]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK32: jalr $4, $25 # encoding: [0x09,0x20,0x20,0x03]
# CHECK32: nop # encoding: [0x00,0x00,0x00,0x00]

# CHECK64: j 1328 # encoding: [0x4c,0x01,0x00,0x08]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jal 1328 # encoding: [0x4c,0x01,0x00,0x0c]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jalr $6 # encoding: [0x09,0xf8,0xc0,0x00]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jalr $25 # encoding: [0x09,0xf8,0x20,0x03]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jalr $10, $11 # encoding: [0x09,0x50,0x60,0x01]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jr $7 # encoding: [0x08,0x00,0xe0,0x00]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jr $7 # encoding: [0x08,0x00,0xe0,0x00]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jalr $25 # encoding: [0x09,0xf8,0x20,0x03]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK64: jalr $4, $25 # encoding: [0x09,0x20,0x20,0x03]
# CHECK64: nop # encoding: [0x00,0x00,0x00,0x00]


j 1328
Expand Down

0 comments on commit a2b9d3d

Please sign in to comment.