JavascriptSIMDInt8x16.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. #pragma once
  6. class JavascriptSIMDFloat32x4;
  7. class JavascriptSIMDInt32x4;
  8. namespace Js
  9. {
  10. class JavascriptSIMDInt8x16 sealed : public RecyclableObject
  11. {
  12. private:
  13. SIMDValue value;
  14. DEFINE_VTABLE_CTOR(JavascriptSIMDInt8x16, RecyclableObject);
  15. public:
  16. class EntryInfo
  17. {
  18. public:
  19. static FunctionInfo ToString;
  20. };
  21. JavascriptSIMDInt8x16(SIMDValue *val, StaticType *type);
  22. static JavascriptSIMDInt8x16* New(SIMDValue *val, ScriptContext* requestContext);
  23. static bool Is(Var instance);
  24. static JavascriptSIMDInt8x16* FromVar(Var aValue);
  25. static JavascriptSIMDInt8x16* FromFloat32x4Bits(JavascriptSIMDFloat32x4 *instance, ScriptContext* requestContext);
  26. static JavascriptSIMDInt8x16* FromInt32x4Bits(JavascriptSIMDInt32x4 *instance, ScriptContext* requestContext);
  27. __inline SIMDValue GetValue() { return value; }
  28. virtual BOOL GetPropertyReference(Var originalInstance, PropertyId propertyId, Var* value, PropertyValueInfo* info, ScriptContext* requestContext) override;
  29. virtual BOOL GetProperty(Var originalInstance, PropertyId propertyId, Var* value, PropertyValueInfo* info, ScriptContext* requestContext) override;
  30. virtual BOOL GetProperty(Var originalInstance, JavascriptString* propertyNameString, Var* value, PropertyValueInfo* info, ScriptContext* requestContext) override;
  31. // Entry Points
  32. /*
  33. There is one toString per SIMD type. The code is entrant from value objects explicitly (e.g. a.toString()) or on overloaded operations.
  34. It will also be a property of SIMD.int32x4.prototype for SIMD dynamic objects.
  35. */
  36. static Var EntryToString(RecyclableObject* function, CallInfo callInfo, ...);
  37. // End Entry Points
  38. Var Copy(ScriptContext* requestContext);
  39. private:
  40. bool GetPropertyBuiltIns(PropertyId propertyId, Var* value, ScriptContext* requestContext);
  41. };
  42. }