forked from OSchip/llvm-project
parent
f838cfcfbe
commit
b9ac06bb33
|
|
@ -834,7 +834,8 @@ void X86DAGToDAGISel::Select(SDOperand &Result, SDOperand N) {
|
|||
}
|
||||
}
|
||||
|
||||
case X86ISD::CALL: {
|
||||
case X86ISD::CALL:
|
||||
case X86ISD::TAILCALL: {
|
||||
// Handle indirect call which folds a load here. This never matches by
|
||||
// the TableGen generated code since the load's chain result is read by
|
||||
// the callseq_start node.
|
||||
|
|
|
|||
|
|
@ -442,8 +442,7 @@ let isCall = 1, noResults = 1 in
|
|||
[]>;
|
||||
def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst), "call {*}$dst",
|
||||
[(X86call GR32:$dst)]>;
|
||||
def CALL32m : I<0xFF, MRM2m, (ops i32mem:$dst), "call {*}$dst",
|
||||
[(X86call (loadiPTR addr:$dst))]>;
|
||||
def CALL32m : I<0xFF, MRM2m, (ops i32mem:$dst), "call {*}$dst", []>;
|
||||
}
|
||||
|
||||
// Tail call stuff.
|
||||
|
|
@ -2370,9 +2369,6 @@ def : Pat<(store (i32 (X86Wrapper texternalsym:$src)), addr:$dst),
|
|||
def : Pat<(X86tailcall GR32:$dst),
|
||||
(CALL32r GR32:$dst)>;
|
||||
|
||||
def : Pat<(X86tailcall (loadiPTR addr:$dst)),
|
||||
(CALL32m addr:$dst)>;
|
||||
|
||||
def : Pat<(X86tailcall tglobaladdr:$dst),
|
||||
(CALLpcrel32 tglobaladdr:$dst)>;
|
||||
def : Pat<(X86tailcall texternalsym:$dst),
|
||||
|
|
|
|||
Loading…
Reference in New Issue