Chromium Code Reviews| OLD | NEW |
|---|---|
| (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 }) | |
| OLD | NEW |