mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-07 12:28:24 +00:00
X86: Mark In32/64BitMode on LEAVE[64] and SYSEXIT[64].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108683 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -246,7 +246,7 @@ def POPCNT64rm : RI<0xB8, MRMSrcMem, (outs GR64:$dst), (ins i64mem:$src),
|
|||||||
|
|
||||||
let Defs = [RBP,RSP], Uses = [RBP,RSP], mayLoad = 1, neverHasSideEffects = 1 in
|
let Defs = [RBP,RSP], Uses = [RBP,RSP], mayLoad = 1, neverHasSideEffects = 1 in
|
||||||
def LEAVE64 : I<0xC9, RawFrm,
|
def LEAVE64 : I<0xC9, RawFrm,
|
||||||
(outs), (ins), "leave", []>;
|
(outs), (ins), "leave", []>, Requires<[In64BitMode]>;
|
||||||
let Defs = [RSP], Uses = [RSP], neverHasSideEffects=1 in {
|
let Defs = [RSP], Uses = [RSP], neverHasSideEffects=1 in {
|
||||||
let mayLoad = 1 in {
|
let mayLoad = 1 in {
|
||||||
def POP64r : I<0x58, AddRegFrm,
|
def POP64r : I<0x58, AddRegFrm,
|
||||||
@@ -330,7 +330,7 @@ def CMPS64 : RI<0xA7, RawFrm, (outs), (ins), "cmpsq", []>;
|
|||||||
|
|
||||||
// Fast system-call instructions
|
// Fast system-call instructions
|
||||||
def SYSEXIT64 : RI<0x35, RawFrm,
|
def SYSEXIT64 : RI<0x35, RawFrm,
|
||||||
(outs), (ins), "sysexit", []>, TB;
|
(outs), (ins), "sysexit", []>, TB, Requires<[In64BitMode]>;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// Move Instructions...
|
// Move Instructions...
|
||||||
|
@@ -756,7 +756,7 @@ let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1 in
|
|||||||
//
|
//
|
||||||
let Defs = [EBP, ESP], Uses = [EBP, ESP], mayLoad = 1, neverHasSideEffects=1 in
|
let Defs = [EBP, ESP], Uses = [EBP, ESP], mayLoad = 1, neverHasSideEffects=1 in
|
||||||
def LEAVE : I<0xC9, RawFrm,
|
def LEAVE : I<0xC9, RawFrm,
|
||||||
(outs), (ins), "leave", []>;
|
(outs), (ins), "leave", []>, Requires<[In32BitMode]>;
|
||||||
|
|
||||||
def POPCNT16rr : I<0xB8, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
|
def POPCNT16rr : I<0xB8, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
|
||||||
"popcnt{w}\t{$src, $dst|$dst, $src}", []>, OpSize, XS;
|
"popcnt{w}\t{$src, $dst|$dst, $src}", []>, OpSize, XS;
|
||||||
@@ -934,7 +934,7 @@ def SYSRET : I<0x07, RawFrm,
|
|||||||
def SYSENTER : I<0x34, RawFrm,
|
def SYSENTER : I<0x34, RawFrm,
|
||||||
(outs), (ins), "sysenter", []>, TB;
|
(outs), (ins), "sysenter", []>, TB;
|
||||||
def SYSEXIT : I<0x35, RawFrm,
|
def SYSEXIT : I<0x35, RawFrm,
|
||||||
(outs), (ins), "sysexit", []>, TB;
|
(outs), (ins), "sysexit", []>, TB, Requires<[In32BitMode]>;
|
||||||
|
|
||||||
def WAIT : I<0x9B, RawFrm, (outs), (ins), "wait", []>;
|
def WAIT : I<0x9B, RawFrm, (outs), (ins), "wait", []>;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user