diff --git a/builtin_function.cpp b/builtin_function.cpp
index 909329c..f9fdd485 100644
--- a/builtin_function.cpp
+++ b/builtin_function.cpp
@@ -107,6 +107,98 @@
    "))\n"
 };
 
+static const char *builtins_110_asin = {
+   "((function asin\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) float x))\n"
+   "     ((return (expression float *\n"
+   "     	       (expression float -\n"
+   "	        (expression float *\n"
+   "		 (constant float (3.1415926))\n"
+   "		 (constant float (0.5)))\n"
+   "		(expression float sqrt\n"
+   "		 (expression float -\n"
+   "		  (constant float (1.0))\n"
+   "		  (expression float abs (var_ref x)))))\n"
+   "     	       (expression float +\n"
+   "     	        (constant float (1.5707288))\n"
+   "	        (expression float *\n"
+   "     	         (expression float abs (var_ref x))\n"
+   "     	         (expression float +\n"
+   "	          (constant float (-0.2121144))\n"
+   "     	          (expression float *\n"
+   "     	           (constant float (0.0742610))\n"
+   "	           (expression float abs (var_ref x))))))))))\n"
+   "\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) vec2 x))\n"
+   "     ((return (expression vec2 *\n"
+   "     	       (expression vec2 -\n"
+   "	        (expression vec2 *\n"
+   "		 (constant float (3.1415926))\n"
+   "		 (constant float (0.5)))\n"
+   "		(expression vec2 sqrt\n"
+   "		 (expression vec2 -\n"
+   "		  (constant float (1.0))\n"
+   "		  (expression vec2 abs (var_ref x)))))\n"
+   "     	       (expression vec2 +\n"
+   "     	        (constant float (1.5707288))\n"
+   "	        (expression vec2 *\n"
+   "     	         (expression vec2 abs (var_ref x))\n"
+   "     	         (expression vec2 +\n"
+   "	          (constant float (-0.2121144))\n"
+   "     	          (expression vec2 *\n"
+   "     	           (constant float (0.0742610))\n"
+   "	           (expression vec2 abs (var_ref x))))))))))\n"
+   "\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) vec3 x))\n"
+   "     ((return (expression vec3 *\n"
+   "     	       (expression vec3 -\n"
+   "	        (expression vec3 *\n"
+   "		 (constant float (3.1415926))\n"
+   "		 (constant float (0.5)))\n"
+   "		(expression vec3 sqrt\n"
+   "		 (expression vec3 -\n"
+   "		  (constant float (1.0))\n"
+   "		  (expression vec3 abs (var_ref x)))))\n"
+   "     	       (expression vec3 +\n"
+   "     	        (constant float (1.5707288))\n"
+   "	        (expression vec3 *\n"
+   "     	         (expression vec3 abs (var_ref x))\n"
+   "     	         (expression vec3 +\n"
+   "	          (constant float (-0.2121144))\n"
+   "     	          (expression vec3 *\n"
+   "     	           (constant float (0.0742610))\n"
+   "	           (expression vec3 abs (var_ref x))))))))))\n"
+   "\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) vec4 x))\n"
+   "     ((return (expression vec4 *\n"
+   "     	       (expression vec4 -\n"
+   "	        (expression vec4 *\n"
+   "		 (constant float (3.1415926))\n"
+   "		 (constant float (0.5)))\n"
+   "		(expression vec4 sqrt\n"
+   "		 (expression vec4 -\n"
+   "		  (constant float (1.0))\n"
+   "		  (expression vec4 abs (var_ref x)))))\n"
+   "     	       (expression vec4 +\n"
+   "     	        (constant float (1.5707288))\n"
+   "	        (expression vec4 *\n"
+   "     	         (expression vec4 abs (var_ref x))\n"
+   "     	         (expression vec4 +\n"
+   "	          (constant float (-0.2121144))\n"
+   "     	          (expression vec4 *\n"
+   "     	           (constant float (0.0742610))\n"
+   "	           (expression vec4 abs (var_ref x))))))))))\n"
+   "))\n"
+};
+
 static const char *builtins_110_ceil = {
    "((function ceil\n"
    "   (signature float\n"
@@ -1470,6 +1562,7 @@
    builtins_110_abs,
    builtins_110_all,
    builtins_110_any,
+   builtins_110_asin,
    builtins_110_ceil,
    builtins_110_clamp,
    builtins_110_cos,
