diff --git a/src/math/big/arith_mips64x.s b/src/math/big/arith_mips64x.s
new file mode 100644
index 0000000000000000000000000000000000000000..f9288fc26e9d0d81733cd471ef0d061ee019eb1c
--- /dev/null
+++ b/src/math/big/arith_mips64x.s
@@ -0,0 +1,46 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !math_big_pure_go,mips64 !math_big_pure_go,mips64le
+
+#include "textflag.h"
+
+// This file provides fast assembly versions for the elementary
+// arithmetic operations on vectors implemented in arith.go.
+
+TEXT ·mulWW(SB),NOSPLIT,$0
+	JMP ·mulWW_g(SB)
+
+TEXT ·divWW(SB),NOSPLIT,$0
+	JMP ·divWW_g(SB)
+
+TEXT ·addVV(SB),NOSPLIT,$0
+	JMP ·addVV_g(SB)
+
+TEXT ·subVV(SB),NOSPLIT,$0
+	JMP ·subVV_g(SB)
+
+TEXT ·addVW(SB),NOSPLIT,$0
+	JMP ·addVW_g(SB)
+
+TEXT ·subVW(SB),NOSPLIT,$0
+	JMP ·subVW_g(SB)
+
+TEXT ·shlVU(SB),NOSPLIT,$0
+	JMP ·shlVU_g(SB)
+
+TEXT ·shrVU(SB),NOSPLIT,$0
+	JMP ·shrVU_g(SB)
+
+TEXT ·mulAddVWW(SB),NOSPLIT,$0
+	JMP ·mulAddVWW_g(SB)
+
+TEXT ·addMulVVW(SB),NOSPLIT,$0
+	JMP ·addMulVVW_g(SB)
+
+TEXT ·divWVW(SB),NOSPLIT,$0
+	JMP ·divWVW_g(SB)
+
+TEXT ·bitLen(SB),NOSPLIT,$0
+	JMP ·bitLen_g(SB)
diff --git a/src/math/stubs_mips64x.s b/src/math/stubs_mips64x.s
new file mode 100644
index 0000000000000000000000000000000000000000..63be6ea8442c222e1ddb7116c0c0f7d894fd7390
--- /dev/null
+++ b/src/math/stubs_mips64x.s
@@ -0,0 +1,91 @@
+// Copyright 2014 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build mips64 mips64le
+
+#include "textflag.h"
+
+TEXT ·Asin(SB),NOSPLIT,$0
+	JMP ·asin(SB)
+
+TEXT ·Acos(SB),NOSPLIT,$0
+	JMP ·acos(SB)
+
+TEXT ·Atan2(SB),NOSPLIT,$0
+	JMP ·atan2(SB)
+
+TEXT ·Atan(SB),NOSPLIT,$0
+	JMP ·atan(SB)
+
+TEXT ·Dim(SB),NOSPLIT,$0
+	JMP ·dim(SB)
+
+TEXT ·Min(SB),NOSPLIT,$0
+	JMP ·min(SB)
+
+TEXT ·Max(SB),NOSPLIT,$0
+	JMP ·max(SB)
+
+TEXT ·Exp2(SB),NOSPLIT,$0
+	JMP ·exp2(SB)
+
+TEXT ·Expm1(SB),NOSPLIT,$0
+	JMP ·expm1(SB)
+
+TEXT ·Exp(SB),NOSPLIT,$0
+	JMP ·exp(SB)
+
+TEXT ·Floor(SB),NOSPLIT,$0
+	JMP ·floor(SB)
+
+TEXT ·Ceil(SB),NOSPLIT,$0
+	JMP ·ceil(SB)
+
+TEXT ·Trunc(SB),NOSPLIT,$0
+	JMP ·trunc(SB)
+
+TEXT ·Frexp(SB),NOSPLIT,$0
+	JMP ·frexp(SB)
+
+TEXT ·Hypot(SB),NOSPLIT,$0
+	JMP ·hypot(SB)
+
+TEXT ·Ldexp(SB),NOSPLIT,$0
+	JMP ·ldexp(SB)
+
+TEXT ·Log10(SB),NOSPLIT,$0
+	JMP ·log10(SB)
+
+TEXT ·Log2(SB),NOSPLIT,$0
+	JMP ·log2(SB)
+
+TEXT ·Log1p(SB),NOSPLIT,$0
+	JMP ·log1p(SB)
+
+TEXT ·Log(SB),NOSPLIT,$0
+	JMP ·log(SB)
+
+TEXT ·Modf(SB),NOSPLIT,$0
+	JMP ·modf(SB)
+
+TEXT ·Mod(SB),NOSPLIT,$0
+	JMP ·mod(SB)
+
+TEXT ·Remainder(SB),NOSPLIT,$0
+	JMP ·remainder(SB)
+
+TEXT ·Sincos(SB),NOSPLIT,$0
+	JMP ·sincos(SB)
+
+TEXT ·Sin(SB),NOSPLIT,$0
+	JMP ·sin(SB)
+
+TEXT ·Cos(SB),NOSPLIT,$0
+	JMP ·cos(SB)
+
+TEXT ·Sqrt(SB),NOSPLIT,$0
+	JMP ·sqrt(SB)
+
+TEXT ·Tan(SB),NOSPLIT,$0
+	JMP ·tan(SB)