JavascriptSimdUint32x4.cpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #include "RuntimeLibraryPch.h"
  6. namespace Js
  7. {
  8. const char16 JavascriptSIMDUint32x4::TypeName[] = _u("SIMD.Uint32x4");
  9. JavascriptSIMDUint32x4::JavascriptSIMDUint32x4(StaticType *type) : JavascriptSIMDType(type)
  10. {
  11. Assert(type->GetTypeId() == TypeIds_SIMDUint32x4);
  12. }
  13. JavascriptSIMDUint32x4::JavascriptSIMDUint32x4(SIMDValue *val, StaticType *type) : JavascriptSIMDType(val, type)
  14. {
  15. Assert(type->GetTypeId() == TypeIds_SIMDUint32x4);
  16. }
  17. JavascriptSIMDUint32x4* JavascriptSIMDUint32x4::AllocUninitialized(ScriptContext* requestContext)
  18. {
  19. return (JavascriptSIMDUint32x4 *)AllocatorNew(Recycler, requestContext->GetRecycler(), JavascriptSIMDUint32x4, requestContext->GetLibrary()->GetSIMDUInt32x4TypeStatic());
  20. }
  21. JavascriptSIMDUint32x4* JavascriptSIMDUint32x4::New(SIMDValue *val, ScriptContext* requestContext)
  22. {
  23. return (JavascriptSIMDUint32x4 *)AllocatorNew(Recycler, requestContext->GetRecycler(), JavascriptSIMDUint32x4, val, requestContext->GetLibrary()->GetSIMDUInt32x4TypeStatic());
  24. }
  25. bool JavascriptSIMDUint32x4::Is(Var instance)
  26. {
  27. return JavascriptOperators::GetTypeId(instance) == TypeIds_SIMDUint32x4;
  28. }
  29. JavascriptSIMDUint32x4* JavascriptSIMDUint32x4::FromVar(Var aValue)
  30. {
  31. Assert(aValue);
  32. AssertMsg(Is(aValue), "Ensure var is actually a 'JavascriptSIMDUint32x4'");
  33. return reinterpret_cast<JavascriptSIMDUint32x4 *>(aValue);
  34. }
  35. Var JavascriptSIMDUint32x4::CallToLocaleString(RecyclableObject& obj, ScriptContext& requestContext, SIMDValue simdValue,
  36. const Var* args, uint numArgs, CallInfo callInfo)
  37. {
  38. const char16 *typeString = _u("SIMD.Uint32x4(");
  39. return JavascriptSIMDObject::FromVar(&obj)->ToLocaleString<int32, 4>(args, numArgs, typeString,
  40. simdValue.i32, &callInfo, &requestContext);
  41. }
  42. RecyclableObject * JavascriptSIMDUint32x4::CloneToScriptContext(ScriptContext* requestContext)
  43. {
  44. return JavascriptSIMDUint32x4::New(&value, requestContext);
  45. }
  46. const char16* JavascriptSIMDUint32x4::GetTypeName()
  47. {
  48. return JavascriptSIMDUint32x4::TypeName;
  49. }
  50. Var JavascriptSIMDUint32x4::Copy(ScriptContext* requestContext)
  51. {
  52. return JavascriptSIMDUint32x4::New(&this->value, requestContext);
  53. }
  54. }