[WinEH] Make funclet return instrs pseudo instrs
[oota-llvm.git] / lib / Target / X86 / X86InstrCompiler.td
index ea8fb20f1d4b983e6d1cbeba40711734cdadd940..8d94aaa0eaca009ecefe6c78ff04fff6e887a36e 100644 (file)
@@ -153,20 +153,10 @@ def EH_RETURN64   : I<0xC3, RawFrm, (outs), (ins GR64:$addr),
 }
 
 let isTerminator = 1, isBarrier = 1, hasCtrlDep = 1, isCodeGenOnly = 1, isReturn = 1 in {
-def CATCHRET   : I<0xC3, RawFrm, (outs), (ins GR32:$addr),
-                   "ret{l}\t# CATCHRET",
-                   [(X86catchret GR32:$addr)], IIC_RET>, Sched<[WriteJumpLd]>;
-def CATCHRET64 : I<0xC3, RawFrm, (outs), (ins GR64:$addr),
-                   "ret{q}\t# CATCHRET",
-                   [(X86catchret GR64:$addr)], IIC_RET>, Sched<[WriteJumpLd]>;
-def CLEANUPRET   : I<0xC3, RawFrm, (outs), (ins),
-                   "ret{l}\t# CLEANUPRET",
-                   [(X86cleanupret)], IIC_RET>, Sched<[WriteJumpLd]>,
-                  Requires<[Not64BitMode]>;
-def CLEANUPRET64 : I<0xC3, RawFrm, (outs), (ins),
-                   "ret{q}\t# CLEANUPRET",
-                   [(X86cleanupret)], IIC_RET>, Sched<[WriteJumpLd]>,
-                  Requires<[In64BitMode]>;
+def CATCHRET : I<0, Pseudo, (outs), (ins brtarget32:$dst),
+                "# CATCHRET",
+                [(catchret bb:$dst)]>;
+def CLEANUPRET : I<0, Pseudo, (outs), (ins), "# CLEANUPRET", [(cleanupret)]>;
 }
 
 let hasSideEffects = 1, isBarrier = 1, isCodeGenOnly = 1,