Add SwiftShader dump from Feb 6 2013
diff --git a/src/Shader/VertexProgram.cpp b/src/Shader/VertexProgram.cpp
index a292a8e..0d93220 100644
--- a/src/Shader/VertexProgram.cpp
+++ b/src/Shader/VertexProgram.cpp
@@ -587,7 +587,7 @@
 				r.o[T0 + i].w = r.v[TexCoord0 + i].w;
 			}
 
-			r.o[Pts].y = r.v[PSize].x;
+			r.o[Pts].y = r.v[PointSize].x;
 		}
 	}
 
@@ -658,64 +658,44 @@
 			ASSERT(false);
 		}
 
-		Vector4f mod;
+		const Float4 &x = reg[(src.swizzle >> 0) & 0x3];
+		const Float4 &y = reg[(src.swizzle >> 2) & 0x3];
+		const Float4 &z = reg[(src.swizzle >> 4) & 0x3];
+		const Float4 &w = reg[(src.swizzle >> 6) & 0x3];
 
-		mod.x = reg[(src.swizzle >> 0) & 0x03];
-		mod.y = reg[(src.swizzle >> 2) & 0x03];
-		mod.z = reg[(src.swizzle >> 4) & 0x03];
-		mod.w = reg[(src.swizzle >> 6) & 0x03];
+		Vector4f mod;
 
 		switch(src.modifier)
 		{
 		case Shader::MODIFIER_NONE:
+			mod.x = x;
+			mod.y = y;
+			mod.z = z;
+			mod.w = w;
 			break;
 		case Shader::MODIFIER_NEGATE:
-			mod.x = -mod.x;
-			mod.y = -mod.y;
-			mod.z = -mod.z;
-			mod.w = -mod.w;
-			break;
-		case Shader::MODIFIER_BIAS:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_BIAS_NEGATE:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_SIGN:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_SIGN_NEGATE:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_COMPLEMENT:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_X2:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_X2_NEGATE:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_DZ:
-			ASSERT(false);   // NOTE: Unimplemented
-			break;
-		case Shader::MODIFIER_DW:
-			ASSERT(false);   // NOTE: Unimplemented
+			mod.x = -x;
+			mod.y = -y;
+			mod.z = -z;
+			mod.w = -w;
 			break;
 		case Shader::MODIFIER_ABS:
-			mod.x = Abs(mod.x);
-			mod.y = Abs(mod.y);
-			mod.z = Abs(mod.z);
-			mod.w = Abs(mod.w);
+			mod.x = Abs(x);
+			mod.y = Abs(y);
+			mod.z = Abs(z);
+			mod.w = Abs(w);
 			break;
 		case Shader::MODIFIER_ABS_NEGATE:
-			mod.x = -Abs(mod.x);
-			mod.y = -Abs(mod.y);
-			mod.z = -Abs(mod.z);
-			mod.w = -Abs(mod.w);
+			mod.x = -Abs(x);
+			mod.y = -Abs(y);
+			mod.z = -Abs(z);
+			mod.w = -Abs(w);
 			break;
 		case Shader::MODIFIER_NOT:
-			UNIMPLEMENTED();
+			mod.x = As<Float4>(As<Int4>(x) ^ Int4(0xFFFFFFFF));
+			mod.y = As<Float4>(As<Int4>(y) ^ Int4(0xFFFFFFFF));
+			mod.z = As<Float4>(As<Int4>(z) ^ Int4(0xFFFFFFFF));
+			mod.w = As<Float4>(As<Int4>(w) ^ Int4(0xFFFFFFFF));
 			break;
 		default:
 			ASSERT(false);
@@ -795,7 +775,7 @@
 				case Shader::PARAMETER_TEMP:   a = r.r[src.rel.index][component]; break;
 				case Shader::PARAMETER_INPUT:  a = r.v[src.rel.index][component]; break;
 				case Shader::PARAMETER_OUTPUT: a = r.o[src.rel.index][component]; break;
-				case Shader::PARAMETER_CONST:  a = Float4(*Pointer<Float>(r.data + OFFSET(DrawData,vs.c[src.rel.index][component]))); break;
+				case Shader::PARAMETER_CONST:  a = *Pointer<Float>(r.data + OFFSET(DrawData,vs.c[src.rel.index][component])); break;
 				default: ASSERT(false);
 				}
 
@@ -1370,7 +1350,7 @@
 		Nucleus::setInsertBlock(testBlock);
 		r.enableContinue = restoreContinue;
 
-		Vector4f &src = reg(r, temporaryRegister);
+		const Vector4f &src = reg(r, temporaryRegister);
 		Int4 condition = As<Int4>(src.x);
 		condition &= r.enableStack[r.enableIndex - 1];
 		r.enableStack[r.enableIndex] = condition;
@@ -1403,7 +1383,7 @@
 				// FIXME: Encapsulate
 				UInt index = r.callStack[--r.stackIndex];
  
-				llvm::Value *value = Nucleus::createLoad(index.address);
+				llvm::Value *value = index.loadValue();
 				llvm::Value *switchInst = Nucleus::createSwitch(value, unreachableBlock, (int)callRetBlock[currentLabel].size());
 
 				for(unsigned int i = 0; i < callRetBlock[currentLabel].size(); i++)