mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00:00
Add a WriteMicrocoded for ancient microcoded instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177611 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
00c5c5d467
commit
c1ea2c5d6d
@ -1513,6 +1513,7 @@ def CLTS : I<0x06, RawFrm, (outs), (ins), "clts", [], IIC_CLTS>, TB;
|
||||
// Table lookup instructions
|
||||
def XLAT : I<0xD7, RawFrm, (outs), (ins), "xlatb", [], IIC_XLAT>;
|
||||
|
||||
let SchedRW = [WriteMicrocoded] in {
|
||||
// ASCII Adjust After Addition
|
||||
// sets AL, AH and CF and AF of EFLAGS and uses AL and AF of EFLAGS
|
||||
def AAA : I<0x37, RawFrm, (outs), (ins), "aaa", [], IIC_AAA>,
|
||||
@ -1542,7 +1543,9 @@ def DAA : I<0x27, RawFrm, (outs), (ins), "daa", [], IIC_DAA>,
|
||||
// sets AL, CF and AF of EFLAGS and uses AL, CF and AF of EFLAGS
|
||||
def DAS : I<0x2F, RawFrm, (outs), (ins), "das", [], IIC_DAS>,
|
||||
Requires<[In32BitMode]>;
|
||||
} // SchedRW
|
||||
|
||||
let SchedRW = [WriteSystem] in {
|
||||
// Check Array Index Against Bounds
|
||||
def BOUNDS16rm : I<0x62, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
|
||||
"bound\t{$src, $dst|$dst, $src}", [], IIC_BOUND>, OpSize,
|
||||
@ -1558,6 +1561,7 @@ def ARPL16rr : I<0x63, MRMDestReg, (outs GR16:$dst), (ins GR16:$src),
|
||||
def ARPL16mr : I<0x63, MRMDestMem, (outs), (ins i16mem:$dst, GR16:$src),
|
||||
"arpl\t{$src, $dst|$dst, $src}", [], IIC_ARPL_MEM>,
|
||||
Requires<[In32BitMode]>;
|
||||
} // SchedRW
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// MOVBE Instructions
|
||||
|
@ -86,6 +86,9 @@ defm WriteCvtF2F : X86SchedWritePair; // Float -> Float size conversion.
|
||||
// Catch-all for expensive system instructions.
|
||||
def WriteSystem : SchedWrite;
|
||||
|
||||
// Old microcoded instructions that nobody use.
|
||||
def WriteMicrocoded : SchedWrite;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Instruction Itinerary classes used for X86
|
||||
def IIC_DEFAULT : InstrItinClass;
|
||||
|
Loading…
x
Reference in New Issue
Block a user