Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Side by Side Diff: src/harmony-simd.js

Issue 1160443009: Add SIMD.Float32x4 functions. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compile. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« include/v8.h ('K') | « src/globals.h ('k') | src/objects.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 (function(global, utils) {
6
7 "use strict";
8
9 %CheckIsBootstrapping();
10
11 // -------------------------------------------------------------------
12 // Imports
13
14 var GlobalObject = global.Object;
15 var GlobalFloat32x4 = global.Float32x4;
16
17 //-------------------------------------------------------------------
18
19 function Float32x4Constructor(x, y, z, w) {
20 return %CreateFloat32x4(x, y, z, w);
21 }
22
23 function Float32x4SplatConstructor(s) {
24 return %CreateFloat32x4(s, s, s, s);
25 }
26
27 function Float32x4CheckJS(a) {
28 return %Float32x4Check(a);
29 }
30
31 //-------------------------------------------------------------------
32
33 function Float32x4ExtractLaneJS(value, lane) {
34 return %Float32x4ExtractLane(value, lane);
35 }
36
37 function Float32x4ReplaceLaneJS(value, lane, replacement) {
38 return %Float32x4ReplaceLane(value, lane, replacement);
39 }
40
41 //-------------------------------------------------------------------
42
43 function Float32x4AbsJS(a) {
44 return %Float32x4Abs(a);
45 }
46
47 function Float32x4NegJS(a) {
48 return %Float32x4Neg(a);
49 }
50
51 function Float32x4SqrtJS(a) {
52 return %Float32x4Sqrt(a);
53 }
54
55 function Float32x4RecipApproxJS(a) {
56 return %Float32x4RecipApprox(a);
57 }
58
59 function Float32x4RecipSqrtApproxJS(a) {
60 return %Float32x4RecipSqrtApprox(a);
61 }
62
63 function Float32x4AddJS(a, b) {
64 return %Float32x4Add(a, b);
65 }
66
67 function Float32x4SubJS(a, b) {
68 return %Float32x4Sub(a, b);
69 }
70
71 function Float32x4MulJS(a, b) {
72 return %Float32x4Mul(a, b);
73 }
74
75 function Float32x4DivJS(a, b) {
76 return %Float32x4Div(a, b);
77 }
78
79 function Float32x4MinJS(a, b) {
80 return %Float32x4Min(a, b);
81 }
82
83 function Float32x4MaxJS(a, b) {
84 return %Float32x4Max(a, b);
85 }
86
87 function Float32x4MinNumJS(a, b) {
88 return %Float32x4MinNum(a, b);
89 }
90
91 function Float32x4MaxNumJS(a, b) {
92 return %Float32x4MaxNum(a, b);
93 }
94
95 function Float32x4SwizzleJS(a, w, x, y, z) {
96 return %Float32x4Swizzle(a, w, x, y, z);
97 }
98
99 function Float32x4ShuffleJS(a, b, w, x, y, z) {
100 return %Float32x4Shuffle(a, b, w, x, y, z);
101 }
102
103 // -------------------------------------------------------------------
104
105 function SIMDConstructor() {}
106 var GlobalSIMD = new SIMDConstructor();
107
108 %InternalSetPrototype(GlobalSIMD, GlobalObject.prototype);
109 %AddNamedProperty(global, 'SIMD', GlobalSIMD, DONT_ENUM);
110 %FunctionSetInstanceClassName(SIMDConstructor, 'SIMD');
111 %AddNamedProperty(GlobalSIMD, symbolToStringTag, 'SIMD', READ_ONLY | DONT_ENUM);
112
113 %FunctionSetPrototype(GlobalFloat32x4, new GlobalObject());
rossberg 2015/06/12 11:48:03 Nit: s/new GlobalObject()/{}/
114 %AddNamedProperty(
115 GlobalFloat32x4.prototype, 'constructor', Float32x4Constructor, DONT_ENUM);
116
117 %AddNamedProperty(GlobalSIMD, 'float32x4', GlobalFloat32x4, DONT_ENUM);
118 %FunctionSetInstanceClassName(GlobalFloat32x4, 'float32x4');
119 %AddNamedProperty(GlobalFloat32x4, symbolToStringTag, 'float32x4', READ_ONLY | D ONT_ENUM);
rossberg 2015/06/12 11:48:03 It seems inconsistent that the tag is lower-case,
120
121 %SetCode(GlobalFloat32x4, Float32x4Constructor);
122 %FunctionSetPrototype(GlobalFloat32x4, new GlobalObject());
123
124 utils.InstallFunctions(GlobalFloat32x4, DONT_ENUM, [
125 'splat', Float32x4SplatConstructor,
126 'check', Float32x4CheckJS,
127 'extractLane', Float32x4ExtractLaneJS,
128 'replaceLane', Float32x4ReplaceLaneJS,
129 'abs', Float32x4AbsJS,
130 'neg', Float32x4NegJS,
131 'sqrt', Float32x4SqrtJS,
132 'reciprocalApproximation', Float32x4RecipApproxJS,
133 'reciprocalSqrtApproximation', Float32x4RecipSqrtApproxJS,
134 'add', Float32x4AddJS,
135 'sub', Float32x4SubJS,
136 'mul', Float32x4MulJS,
137 'div', Float32x4DivJS,
138 'min', Float32x4MinJS,
139 'max', Float32x4MaxJS,
140 'minNum', Float32x4MinNumJS,
141 'maxNum', Float32x4MaxNumJS,
142 'swizzle', Float32x4SwizzleJS,
143 'shuffle', Float32x4ShuffleJS,
144 ]);
145
146 })
OLDNEW
« include/v8.h ('K') | « src/globals.h ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698