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
 | 
					      // 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 TableGen generated code since the load's chain result is read by
 | 
				
			||||||
      // the callseq_start node.
 | 
					      // the callseq_start node.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -442,8 +442,7 @@ let isCall = 1, noResults = 1 in
 | 
				
			||||||
                      []>;
 | 
					                      []>;
 | 
				
			||||||
    def CALL32r     : I<0xFF, MRM2r, (ops GR32:$dst), "call {*}$dst",
 | 
					    def CALL32r     : I<0xFF, MRM2r, (ops GR32:$dst), "call {*}$dst",
 | 
				
			||||||
                      [(X86call GR32:$dst)]>;
 | 
					                      [(X86call GR32:$dst)]>;
 | 
				
			||||||
    def CALL32m     : I<0xFF, MRM2m, (ops i32mem:$dst), "call {*}$dst",
 | 
					    def CALL32m     : I<0xFF, MRM2m, (ops i32mem:$dst), "call {*}$dst", []>;
 | 
				
			||||||
                      [(X86call (loadiPTR addr:$dst))]>;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Tail call stuff.
 | 
					// Tail call stuff.
 | 
				
			||||||
| 
						 | 
					@ -2370,9 +2369,6 @@ def : Pat<(store (i32 (X86Wrapper texternalsym:$src)), addr:$dst),
 | 
				
			||||||
def : Pat<(X86tailcall GR32:$dst),
 | 
					def : Pat<(X86tailcall GR32:$dst),
 | 
				
			||||||
      (CALL32r     GR32:$dst)>;
 | 
					      (CALL32r     GR32:$dst)>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def : Pat<(X86tailcall (loadiPTR addr:$dst)),
 | 
					 | 
				
			||||||
      (CALL32m addr:$dst)>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def : Pat<(X86tailcall tglobaladdr:$dst),
 | 
					def : Pat<(X86tailcall tglobaladdr:$dst),
 | 
				
			||||||
          (CALLpcrel32 tglobaladdr:$dst)>;
 | 
					          (CALLpcrel32 tglobaladdr:$dst)>;
 | 
				
			||||||
def : Pat<(X86tailcall texternalsym:$dst),
 | 
					def : Pat<(X86tailcall texternalsym:$dst),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue