mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Add a couple more instrs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24744 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3c1c514fae
commit
13e1501c91
@ -21,11 +21,13 @@ class F2 : InstV8 { // Format 2 instructions
|
|||||||
|
|
||||||
// Specific F2 classes: SparcV8 manual, page 44
|
// Specific F2 classes: SparcV8 manual, page 44
|
||||||
//
|
//
|
||||||
class F2_1<bits<3> op2Val, string name> : F2 {
|
class F2_1<bits<3> op2Val, dag ops, string asmstr> : F2 {
|
||||||
bits<5> rd;
|
bits<5> rd;
|
||||||
|
|
||||||
|
dag OperandList = ops;
|
||||||
|
let AsmString = asmstr;
|
||||||
|
|
||||||
let op2 = op2Val;
|
let op2 = op2Val;
|
||||||
let Name = name;
|
|
||||||
|
|
||||||
let Inst{29-25} = rd;
|
let Inst{29-25} = rd;
|
||||||
}
|
}
|
||||||
|
@ -149,12 +149,14 @@ def STDFQri : F3_2<3, 0b100110,
|
|||||||
"std $src, [$base+$offset]">;
|
"std $src, [$base+$offset]">;
|
||||||
|
|
||||||
// Section B.9 - SETHI Instruction, p. 104
|
// Section B.9 - SETHI Instruction, p. 104
|
||||||
def SETHIi: F2_1<0b100, "sethi">;
|
def SETHIi: F2_1<0b100,
|
||||||
|
(ops IntRegs:$dst, i32imm:$src),
|
||||||
|
"sethi $src, $dst">;
|
||||||
|
|
||||||
// Section B.10 - NOP Instruction, p. 105
|
// Section B.10 - NOP Instruction, p. 105
|
||||||
// (It's a special case of SETHI)
|
// (It's a special case of SETHI)
|
||||||
let rd = 0, imm22 = 0 in
|
let rd = 0, imm22 = 0 in
|
||||||
def NOP : F2_1<0b100, "nop">;
|
def NOP : F2_1<0b100, (ops), "nop">;
|
||||||
|
|
||||||
// Section B.11 - Logical Instructions, p. 106
|
// Section B.11 - Logical Instructions, p. 106
|
||||||
def ANDrr : F3_1<2, 0b000001,
|
def ANDrr : F3_1<2, 0b000001,
|
||||||
|
@ -21,11 +21,13 @@ class F2 : InstV8 { // Format 2 instructions
|
|||||||
|
|
||||||
// Specific F2 classes: SparcV8 manual, page 44
|
// Specific F2 classes: SparcV8 manual, page 44
|
||||||
//
|
//
|
||||||
class F2_1<bits<3> op2Val, string name> : F2 {
|
class F2_1<bits<3> op2Val, dag ops, string asmstr> : F2 {
|
||||||
bits<5> rd;
|
bits<5> rd;
|
||||||
|
|
||||||
|
dag OperandList = ops;
|
||||||
|
let AsmString = asmstr;
|
||||||
|
|
||||||
let op2 = op2Val;
|
let op2 = op2Val;
|
||||||
let Name = name;
|
|
||||||
|
|
||||||
let Inst{29-25} = rd;
|
let Inst{29-25} = rd;
|
||||||
}
|
}
|
||||||
|
@ -149,12 +149,14 @@ def STDFQri : F3_2<3, 0b100110,
|
|||||||
"std $src, [$base+$offset]">;
|
"std $src, [$base+$offset]">;
|
||||||
|
|
||||||
// Section B.9 - SETHI Instruction, p. 104
|
// Section B.9 - SETHI Instruction, p. 104
|
||||||
def SETHIi: F2_1<0b100, "sethi">;
|
def SETHIi: F2_1<0b100,
|
||||||
|
(ops IntRegs:$dst, i32imm:$src),
|
||||||
|
"sethi $src, $dst">;
|
||||||
|
|
||||||
// Section B.10 - NOP Instruction, p. 105
|
// Section B.10 - NOP Instruction, p. 105
|
||||||
// (It's a special case of SETHI)
|
// (It's a special case of SETHI)
|
||||||
let rd = 0, imm22 = 0 in
|
let rd = 0, imm22 = 0 in
|
||||||
def NOP : F2_1<0b100, "nop">;
|
def NOP : F2_1<0b100, (ops), "nop">;
|
||||||
|
|
||||||
// Section B.11 - Logical Instructions, p. 106
|
// Section B.11 - Logical Instructions, p. 106
|
||||||
def ANDrr : F3_1<2, 0b000001,
|
def ANDrr : F3_1<2, 0b000001,
|
||||||
|
Loading…
Reference in New Issue
Block a user