mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
[X86] Change memory operand of BNDMK/BNDCL/BNDCU/BNDCN/BNDST to anymem.
These instruction don't use their memory operands as normal memory operands. They're just used as addresses. They don't have a size because they aren't directly representing a load or store. llvm-svn: 331104
This commit is contained in:
parent
e8487559a9
commit
06352c70eb
@ -18,10 +18,10 @@ let SchedRW = [WriteSystem] in {
|
|||||||
|
|
||||||
multiclass mpx_bound_make<bits<8> opc, string OpcodeStr> {
|
multiclass mpx_bound_make<bits<8> opc, string OpcodeStr> {
|
||||||
let mayLoad = 1 in {
|
let mayLoad = 1 in {
|
||||||
def 32rm: I<opc, MRMSrcMem, (outs BNDR:$dst), (ins i32mem:$src),
|
def 32rm: I<opc, MRMSrcMem, (outs BNDR:$dst), (ins anymem:$src),
|
||||||
OpcodeStr#"\t{$src, $dst|$dst, $src}", []>,
|
OpcodeStr#"\t{$src, $dst|$dst, $src}", []>,
|
||||||
Requires<[HasMPX, Not64BitMode]>;
|
Requires<[HasMPX, Not64BitMode]>;
|
||||||
def 64rm: I<opc, MRMSrcMem, (outs BNDR:$dst), (ins i64mem:$src),
|
def 64rm: I<opc, MRMSrcMem, (outs BNDR:$dst), (ins anymem:$src),
|
||||||
OpcodeStr#"\t{$src, $dst|$dst, $src}", []>,
|
OpcodeStr#"\t{$src, $dst|$dst, $src}", []>,
|
||||||
Requires<[HasMPX, In64BitMode]>;
|
Requires<[HasMPX, In64BitMode]>;
|
||||||
}
|
}
|
||||||
@ -31,10 +31,10 @@ defm BNDMK : mpx_bound_make<0x1B, "bndmk">, XS;
|
|||||||
|
|
||||||
multiclass mpx_bound_check<bits<8> opc, string OpcodeStr> {
|
multiclass mpx_bound_check<bits<8> opc, string OpcodeStr> {
|
||||||
let mayLoad = 1 in {
|
let mayLoad = 1 in {
|
||||||
def 32rm: I<opc, MRMSrcMem, (outs), (ins BNDR:$src1, i32mem:$src2),
|
def 32rm: I<opc, MRMSrcMem, (outs), (ins BNDR:$src1, anymem:$src2),
|
||||||
OpcodeStr#"\t{$src2, $src1|$src1, $src2}", []>,
|
OpcodeStr#"\t{$src2, $src1|$src1, $src2}", []>,
|
||||||
Requires<[HasMPX, Not64BitMode]>;
|
Requires<[HasMPX, Not64BitMode]>;
|
||||||
def 64rm: I<opc, MRMSrcMem, (outs), (ins BNDR:$src1, i64mem:$src2),
|
def 64rm: I<opc, MRMSrcMem, (outs), (ins BNDR:$src1, anymem:$src2),
|
||||||
OpcodeStr#"\t{$src2, $src1|$src1, $src2}", []>,
|
OpcodeStr#"\t{$src2, $src1|$src1, $src2}", []>,
|
||||||
Requires<[HasMPX, In64BitMode]>;
|
Requires<[HasMPX, In64BitMode]>;
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ def BNDMOV64mr : I<0x1B, MRMDestMem, (outs), (ins i128mem:$dst, BNDR:$src),
|
|||||||
"bndmov\t{$src, $dst|$dst, $src}", []>, PD,
|
"bndmov\t{$src, $dst|$dst, $src}", []>, PD,
|
||||||
Requires<[HasMPX, In64BitMode]>;
|
Requires<[HasMPX, In64BitMode]>;
|
||||||
|
|
||||||
def BNDSTXmr: I<0x1B, MRMDestMem, (outs), (ins i64mem:$dst, BNDR:$src),
|
def BNDSTXmr: I<0x1B, MRMDestMem, (outs), (ins anymem:$dst, BNDR:$src),
|
||||||
"bndstx\t{$src, $dst|$dst, $src}", []>, PS,
|
"bndstx\t{$src, $dst|$dst, $src}", []>, PS,
|
||||||
Requires<[HasMPX]>;
|
Requires<[HasMPX]>;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user