mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
[Mips Assembler] Add alias definitions for jal
Mips assembler allows following to be used as aliased instructions: jal $rs for jalr $rs jal $rd,$rd for jalr $rd,$rs This patch provides alias definitions in td files and test cases to show the usage. Contributer: Vladimir Medic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178304 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bad24f757d
commit
94fcfaf3a9
@ -332,6 +332,10 @@ def : InstAlias<"not $rt, $rs",
|
||||
def : InstAlias<"j $rs", (JR64 CPU64Regs:$rs), 0>, Requires<[HasMips64]>;
|
||||
def : InstAlias<"jalr $rs", (JALR64 RA_64, CPU64Regs:$rs)>,
|
||||
Requires<[HasMips64]>;
|
||||
def : InstAlias<"jal $rs", (JALR64 RA_64, CPU64Regs:$rs), 0>,
|
||||
Requires<[HasMips64]>;
|
||||
def : InstAlias<"jal $rd,$rs", (JALR64 CPU64Regs:$rd, CPU64Regs:$rs), 0>,
|
||||
Requires<[HasMips64]>;
|
||||
def : InstAlias<"daddu $rs, $rt, $imm",
|
||||
(DADDiu CPU64RegsOpnd:$rs, CPU64RegsOpnd:$rt, simm16_64:$imm),
|
||||
1>;
|
||||
|
@ -1001,6 +1001,9 @@ def : InstAlias<"and $rs, $rt, $imm",
|
||||
def : InstAlias<"j $rs", (JR CPURegs:$rs), 0>,
|
||||
Requires<[NotMips64]>;
|
||||
def : InstAlias<"jalr $rs", (JALR RA, CPURegs:$rs)>, Requires<[NotMips64]>;
|
||||
def : InstAlias<"jal $rs", (JALR RA, CPURegs:$rs), 0>, Requires<[NotMips64]>;
|
||||
def : InstAlias<"jal $rd,$rs", (JALR CPURegs:$rd, CPURegs:$rs), 0>,
|
||||
Requires<[NotMips64]>;
|
||||
def : InstAlias<"not $rt, $rs",
|
||||
(NOR CPURegsOpnd:$rt, CPURegsOpnd:$rs, ZERO), 1>;
|
||||
def : InstAlias<"neg $rt, $rs",
|
||||
|
@ -1,4 +1,5 @@
|
||||
# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s
|
||||
# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
|
||||
# RUN: FileCheck %s
|
||||
# Check that the assembler can handle the documented syntax
|
||||
# for jumps and branches.
|
||||
# CHECK: .section __TEXT,__text,regular,pure_instructions
|
||||
@ -25,6 +26,9 @@
|
||||
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
|
||||
# CHECK: bal 1332 # encoding: [0x4d,0x01,0x11,0x04]
|
||||
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
|
||||
|
||||
.set noreorder
|
||||
|
||||
b 1332
|
||||
nop
|
||||
bc1f 1332
|
||||
@ -63,6 +67,11 @@ end_of_code:
|
||||
# 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]
|
||||
|
||||
|
||||
j 1328
|
||||
@ -78,3 +87,8 @@ end_of_code:
|
||||
jr $7
|
||||
nop
|
||||
j $7
|
||||
nop
|
||||
jal $25
|
||||
nop
|
||||
jal $4,$25
|
||||
nop
|
||||
|
Loading…
Reference in New Issue
Block a user