Chromium Code Reviews| Index: runtime/lib/simd128.cc |
| diff --git a/runtime/lib/simd128.cc b/runtime/lib/simd128.cc |
| index 542eee4896732f56217f1b4588ac985a9c4196dd..3ef700932b5db3a2927ad4c27fdd1d9a7b0c56e9 100644 |
| --- a/runtime/lib/simd128.cc |
| +++ b/runtime/lib/simd128.cc |
| @@ -242,6 +242,61 @@ DEFINE_NATIVE_ENTRY(Float32x4_shuffle, 2) { |
| } |
| +DEFINE_NATIVE_ENTRY(Float32x4_withZwInXy, 2) { |
|
srdjan
2013/07/24 18:08:31
I would sync the name style with Dart, as withZWIn
Cutch
2013/07/24 21:20:18
Done.
|
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, self, arguments->NativeArgAt(0)); |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, other, arguments->NativeArgAt(1)); |
| + float _x = other.z(); |
| + float _y = other.w(); |
| + float _z = self.z(); |
| + float _w = self.w(); |
| + return Float32x4::New(_x, _y, _z, _w); |
| +} |
| + |
| + |
| +DEFINE_NATIVE_ENTRY(Float32x4_interleaveXy, 2) { |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, self, arguments->NativeArgAt(0)); |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, other, arguments->NativeArgAt(1)); |
| + float _x = self.x(); |
| + float _y = other.x(); |
| + float _z = self.y(); |
| + float _w = other.y(); |
| + return Float32x4::New(_x, _y, _z, _w); |
| +} |
| + |
| + |
| +DEFINE_NATIVE_ENTRY(Float32x4_interleaveZw, 2) { |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, self, arguments->NativeArgAt(0)); |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, other, arguments->NativeArgAt(1)); |
| + float _x = self.z(); |
| + float _y = other.z(); |
| + float _z = self.w(); |
| + float _w = other.w(); |
| + return Float32x4::New(_x, _y, _z, _w); |
| +} |
| + |
| + |
| +DEFINE_NATIVE_ENTRY(Float32x4_interleaveXyPairs, 2) { |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, self, arguments->NativeArgAt(0)); |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, other, arguments->NativeArgAt(1)); |
| + float _x = self.x(); |
| + float _y = self.y(); |
| + float _z = other.x(); |
| + float _w = other.y(); |
| + return Float32x4::New(_x, _y, _z, _w); |
| +} |
| + |
| + |
| +DEFINE_NATIVE_ENTRY(Float32x4_interleaveZwPairs, 2) { |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, self, arguments->NativeArgAt(0)); |
| + GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, other, arguments->NativeArgAt(1)); |
| + float _x = self.z(); |
| + float _y = self.w(); |
| + float _z = other.z(); |
| + float _w = other.w(); |
| + return Float32x4::New(_x, _y, _z, _w); |
| +} |
| + |
| + |
| DEFINE_NATIVE_ENTRY(Float32x4_setX, 2) { |
| GET_NON_NULL_NATIVE_ARGUMENT(Float32x4, self, arguments->NativeArgAt(0)); |
| GET_NON_NULL_NATIVE_ARGUMENT(Double, x, arguments->NativeArgAt(1)); |