aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/wasm/object-access.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/wasm/object-access.h')
-rw-r--r--deps/v8/src/wasm/object-access.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/deps/v8/src/wasm/object-access.h b/deps/v8/src/wasm/object-access.h
new file mode 100644
index 0000000000..0f4a4d447d
--- /dev/null
+++ b/deps/v8/src/wasm/object-access.h
@@ -0,0 +1,48 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_WASM_OBJECT_ACCESS_H_
+#define V8_WASM_OBJECT_ACCESS_H_
+
+#include "src/globals.h"
+#include "src/objects/fixed-array.h"
+#include "src/objects/js-objects.h"
+#include "src/objects/shared-function-info.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+class ObjectAccess : public AllStatic {
+ public:
+ // Convert an offset into an object to an offset into a tagged object.
+ static constexpr int ToTagged(int offset) { return offset - kHeapObjectTag; }
+
+ // Get the offset into a fixed array for a given {index}.
+ static constexpr int ElementOffsetInTaggedFixedArray(int index) {
+ return ToTagged(FixedArray::OffsetOfElementAt(index));
+ }
+
+ // Get the offset of the context stored in a {JSFunction} object.
+ static constexpr int ContextOffsetInTaggedJSFunction() {
+ return ToTagged(JSFunction::kContextOffset);
+ }
+
+ // Get the offset of the shared function info in a {JSFunction} object.
+ static constexpr int SharedFunctionInfoOffsetInTaggedJSFunction() {
+ return ToTagged(JSFunction::kSharedFunctionInfoOffset);
+ }
+
+ // Get the offset of the formal parameter count in a {SharedFunctionInfo}
+ // object.
+ static constexpr int FormalParameterCountOffsetInSharedFunctionInfo() {
+ return ToTagged(SharedFunctionInfo::kFormalParameterCountOffset);
+ }
+};
+
+} // namespace wasm
+} // namespace internal
+} // namespace v8
+
+#endif // V8_WASM_OBJECT_ACCESS_H_