Implement switch constructs.

Bug swiftshader:6

Change-Id: Ifd28cab11e814dd09515ad8721f8d3d86123f19c
Reviewed-on: https://swiftshader-review.googlesource.com/7970
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-on: https://swiftshader-review.googlesource.com/8165
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Reactor/Nucleus.hpp b/src/Reactor/Nucleus.hpp
index 8cb8787..ddca385 100644
--- a/src/Reactor/Nucleus.hpp
+++ b/src/Reactor/Nucleus.hpp
@@ -23,6 +23,7 @@
 {
 	class Type;
 	class Value;
+	class SwitchCases;
 	class BasicBlock;
 	class Routine;
 
@@ -144,8 +145,8 @@
 
 		// Other instructions
 		static Value *createSelect(Value *C, Value *ifTrue, Value *ifFalse);
-		static Value *createSwitch(Value *V, BasicBlock *Dest, unsigned NumCases);
-		static void addSwitchCase(Value *Switch, int Case, BasicBlock *Branch);
+		static SwitchCases *createSwitch(Value *control, BasicBlock *defaultBranch, unsigned numCases);
+		static void addSwitchCase(SwitchCases *switchCases, int label, BasicBlock *branch);
 		static void createUnreachable();
 
 		// Constant values