Bug 993034: SIMD - Rename toType2 into toType and make it fallible; r=nmatsakis

This commit is contained in:
Benjamin Bouvier 2014-04-16 16:21:09 +02:00
Родитель 1f21cde212
Коммит 0f4e401171
2 изменённых файлов: 14 добавлений и 9 удалений

Просмотреть файл

@ -609,7 +609,8 @@ FuncWith(JSContext *cx, unsigned argc, Value *vp)
for (int32_t i = 0; i < Vret::lanes; i++) {
if(args[1].isNumber()) {
typename Vret::Elem arg1;
Vret::toType2(cx, args[1], &arg1);
if (!Vret::toType(cx, args[1], &arg1))
return false;
result[i] = OpWith::apply(i, arg1, val[i]);
} else if (args[1].isBoolean()) {
result[i] = OpWith::apply(i, args[1].toBoolean(), val[i]);
@ -643,7 +644,8 @@ FuncShuffle(JSContext *cx, unsigned argc, Value *vp)
typename Vret::Elem result[Vret::lanes];
for (int32_t i = 0; i < Vret::lanes; i++) {
typename Vret::Elem arg1;
Vret::toType2(cx, args[1], &arg1);
if (!Vret::toType(cx, args[1], &arg1))
return false;
result[i] = val[OpShuffle::apply(i * 2, arg1)];
}
RootedObject obj(cx, Create<Vret>(cx, result));
@ -669,7 +671,8 @@ FuncShuffle(JSContext *cx, unsigned argc, Value *vp)
typename Vret::Elem result[Vret::lanes];
for (int32_t i = 0; i < Vret::lanes; i++) {
typename Vret::Elem arg2;
Vret::toType2(cx, args[2], &arg2);
if (!Vret::toType(cx, args[2], &arg2))
return false;
if(i < Vret::lanes / 2) {
result[i] = val1[OpShuffle::apply(i * 2, arg2)];
} else {
@ -774,7 +777,8 @@ FuncSplat(JSContext *cx, unsigned argc, Value *vp)
typename Vret::Elem result[Vret::lanes];
for (int32_t i = 0; i < Vret::lanes; i++) {
typename Vret::Elem arg0;
Vret::toType2(cx, args[0], &arg0);
if (!Vret::toType(cx, args[0], &arg0))
return false;
result[i] = static_cast<typename Vret::Elem>(arg0);
}

Просмотреть файл

@ -126,10 +126,11 @@ struct Float32x4 {
static Elem toType(Elem a) {
return a;
}
static void toType2(JSContext *cx, JS::Handle<JS::Value> v, Elem *out) {
static bool toType(JSContext *cx, JS::HandleValue v, Elem *out) {
*out = v.toNumber();
return true;
}
static void setReturn(CallArgs &args, float value) {
static void setReturn(CallArgs &args, Elem value) {
args.rval().setDouble(JS::CanonicalizeNaN(value));
}
};
@ -146,10 +147,10 @@ struct Int32x4 {
static Elem toType(Elem a) {
return ToInt32(a);
}
static void toType2(JSContext *cx, JS::Handle<JS::Value> v, Elem *out) {
ToInt32(cx,v,out);
static bool toType(JSContext *cx, JS::HandleValue v, Elem *out) {
return ToInt32(cx, v, out);
}
static void setReturn(CallArgs &args, int32_t value) {
static void setReturn(CallArgs &args, Elem value) {
args.rval().setInt32(value);
}
};