From 4becc58587a202f815d7eec220255ce29cf6d326 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 24 Oct 2016 20:32:04 +0000 Subject: [PATCH] [WebAssembly] Define the `end` opcode value. CFGStackify differentiates between END_LOOP and END_BLOCK, but wasm itself doesn't. For now, just use the same opcode for both. llvm-svn: 285016 --- llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td index 0252aab794dc..7ff5bbdcd488 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td +++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td @@ -63,8 +63,10 @@ def BR_TABLE_I64 : I<(outs), (ins I64:$index, variable_ops), let Uses = [VALUE_STACK], Defs = [VALUE_STACK] in { def BLOCK : I<(outs), (ins Signature:$sig), [], "block \t$sig", 0x02>; def LOOP : I<(outs), (ins Signature:$sig), [], "loop \t$sig", 0x03>; -def END_BLOCK : I<(outs), (ins), [], "end_block">; -def END_LOOP : I<(outs), (ins), [], "end_loop">; + +// END_BLOCK and END_LOOP are represented with the same opcode in wasm. +def END_BLOCK : I<(outs), (ins), [], "end_block", 0x0f>; +def END_LOOP : I<(outs), (ins), [], "end_loop", 0x0f>; } // Uses = [VALUE_STACK], Defs = [VALUE_STACK] multiclass RETURN {