JavascriptSimdUint8x16.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 JavascriptSIMDUint8x16::TypeName[] = _u("SIMD.Uint8x16");
  9. JavascriptSIMDUint8x16::JavascriptSIMDUint8x16(StaticType *type) : JavascriptSIMDType(type)
  10. {
  11. Assert(type->GetTypeId() == TypeIds_SIMDUint8x16);
  12. }
  13. JavascriptSIMDUint8x16::JavascriptSIMDUint8x16(SIMDValue *val, StaticType *type) : JavascriptSIMDType(val, type)
  14. {
  15. Assert(type->GetTypeId() == TypeIds_SIMDUint8x16);
  16. }
  17. JavascriptSIMDUint8x16* JavascriptSIMDUint8x16::New(SIMDValue *val, ScriptContext* requestContext)
  18. {
  19. return (JavascriptSIMDUint8x16 *)AllocatorNew(Recycler, requestContext->GetRecycler(), JavascriptSIMDUint8x16, val, requestContext->GetLibrary()->GetSIMDUint8x16TypeStatic());
  20. }
  21. bool JavascriptSIMDUint8x16::Is(Var instance)
  22. {
  23. return JavascriptOperators::GetTypeId(instance) == TypeIds_SIMDUint8x16;
  24. }
  25. JavascriptSIMDUint8x16* JavascriptSIMDUint8x16::FromVar(Var aValue)
  26. {
  27. Assert(aValue);
  28. AssertMsg(Is(aValue), "Ensure var is actually a 'JavascriptSIMDUint8x16'");
  29. return reinterpret_cast<JavascriptSIMDUint8x16 *>(aValue);
  30. }
  31. Var JavascriptSIMDUint8x16::CallToLocaleString(RecyclableObject& obj, ScriptContext& requestContext, SIMDValue simdValue,
  32. const Var* args, uint numArgs, CallInfo callInfo)
  33. {
  34. const char16 *typeString = _u("SIMD.Uint8x16(");
  35. return JavascriptSIMDObject::FromVar(&obj)->ToLocaleString<uint8, 16>(args, numArgs, typeString,
  36. simdValue.u8, &callInfo, &requestContext);
  37. }
  38. RecyclableObject * JavascriptSIMDUint8x16::CloneToScriptContext(ScriptContext* requestContext)
  39. {
  40. return JavascriptSIMDUint8x16::New(&value, requestContext);
  41. }
  42. const char16* JavascriptSIMDUint8x16::GetTypeName()
  43. {
  44. return JavascriptSIMDUint8x16::TypeName;
  45. }
  46. Var JavascriptSIMDUint8x16::Copy(ScriptContext* requestContext)
  47. {
  48. return JavascriptSIMDUint8x16::New(&this->value, requestContext);
  49. }
  50. }