[sledge] Add nonsupport for CallBr instruction

Summary:
This is a form of call only used with inline asm, so currently not
supported.

Reviewed By: jvillard

Differential Revision: D27280742

fbshipit-source-id: f286e7886
master
Josh Berdine 4 years ago committed by Facebook GitHub Bot
parent de0b4e764c
commit 5316e64230

@ -562,7 +562,7 @@ and xlate_value ?(inline = false) : x -> Llvm.llvalue -> Inst.t list * Exp.t
| Instruction | Instruction
( Invalid | Ret | Br | Switch | IndirectBr | Invalid2 | Unreachable ( Invalid | Ret | Br | Switch | IndirectBr | Invalid2 | Unreachable
| Store | UserOp1 | UserOp2 | Fence | AtomicCmpXchg | AtomicRMW | Store | UserOp1 | UserOp2 | Fence | AtomicCmpXchg | AtomicRMW
| Resume | CleanupRet | CatchRet ) | Resume | CleanupRet | CatchRet | CallBr )
|NullValue | BasicBlock | InlineAsm | MDNode | MDString -> |NullValue | BasicBlock | InlineAsm | MDNode | MDString ->
fail "xlate_value: %a" pp_llvalue llv () fail "xlate_value: %a" pp_llvalue llv ()
in in
@ -791,9 +791,9 @@ and xlate_opcode : x -> Llvm.llvalue -> Llvm.Opcode.t -> Inst.t list * Exp.t
exp exp
| _ -> todo "vector operations: %a" pp_llvalue llv () ) | _ -> todo "vector operations: %a" pp_llvalue llv () )
| Invalid | Ret | Br | Switch | IndirectBr | Invoke | Invalid2 | Invalid | Ret | Br | Switch | IndirectBr | Invoke | Invalid2
|Unreachable | Alloca | Load | Store | PHI | Call | UserOp1 | UserOp2 |Unreachable | Alloca | Load | Store | PHI | Call | CallBr | UserOp1
|Fence | AtomicCmpXchg | AtomicRMW | Resume | LandingPad | CleanupRet |UserOp2 | Fence | AtomicCmpXchg | AtomicRMW | Resume | LandingPad
|CatchRet | CatchPad | CleanupPad | CatchSwitch | VAArg -> |CleanupRet | CatchRet | CatchPad | CleanupPad | CatchSwitch | VAArg ->
fail "xlate_opcode: %a" pp_llvalue llv () ) fail "xlate_opcode: %a" pp_llvalue llv () )
|> |>
[%Trace.retn fun {pf} -> pf "%a" pp_prefix_exp] [%Trace.retn fun {pf} -> pf "%a" pp_prefix_exp]
@ -1456,6 +1456,7 @@ let xlate_instr :
emit_inst (Inst.nondet ~reg ~msg:"vaarg" ~loc) emit_inst (Inst.nondet ~reg ~msg:"vaarg" ~loc)
| CleanupRet | CatchRet | CatchPad | CleanupPad | CatchSwitch -> | CleanupRet | CatchRet | CatchPad | CleanupPad | CatchSwitch ->
todo "windows exception handling: %a" pp_llvalue instr () todo "windows exception handling: %a" pp_llvalue instr ()
| CallBr -> todo "inline asm: %a" pp_llvalue instr ()
| Fence | AtomicCmpXchg | AtomicRMW -> | Fence | AtomicCmpXchg | AtomicRMW ->
fail "xlate_instr: %a" pp_llvalue instr () fail "xlate_instr: %a" pp_llvalue instr ()
| PHI | Invalid | Invalid2 | UserOp1 | UserOp2 -> assert false | PHI | Invalid | Invalid2 | UserOp1 | UserOp2 -> assert false

Loading…
Cancel
Save