glsl2: Make cross() be an expression operation.

ARB_fp, ARB_vp, Mesa IR, and the 965 vertex shader all have
instructions for cross.  Shaves 12 Mesa instructions off of a
66-instruction shader I have.
diff --git a/src/glsl/builtin_function.cpp b/src/glsl/builtin_function.cpp
index 1cf88ad..b3a2833 100644
--- a/src/glsl/builtin_function.cpp
+++ b/src/glsl/builtin_function.cpp
@@ -486,17 +486,7 @@
    "     (parameters\n"
    "       (declare (in) vec3 arg0)\n"
    "       (declare (in) vec3 arg1))\n"
-   "     ((declare () vec3 t)\n"
-   "      (assign (constant bool (1)) (swiz x (var_ref t))\n"
-   "              (expression float - (expression float * (swiz y (var_ref arg0)) (swiz z (var_ref arg1)))\n"
-   "	                          (expression float * (swiz y (var_ref arg1)) (swiz z (var_ref arg0)))))\n"
-   "      (assign (constant bool (1)) (swiz y (var_ref t))\n"
-   "              (expression float - (expression float * (swiz z (var_ref arg0)) (swiz x (var_ref arg1)))\n"
-   "	                          (expression float * (swiz z (var_ref arg1)) (swiz x (var_ref arg0)))))\n"
-   "      (assign (constant bool (1)) (swiz z (var_ref t))\n"
-   "              (expression float - (expression float * (swiz x (var_ref arg0)) (swiz y (var_ref arg1)))\n"
-   "	                          (expression float * (swiz x (var_ref arg1)) (swiz y (var_ref arg0)))))\n"
-   "      (return (var_ref t))))\n"
+   "     ((return (expression vec3 cross (var_ref arg0) (var_ref arg1)))))\n"
    "))\n"
 };