diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-12 14:07:37 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 10:29:26 +0000 |
commit | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch) | |
tree | 25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/v8/src/code-stubs-utils.h | |
parent | bb09965444b5bb20b096a291445170876225268d (diff) | |
download | qtwebengine-chromium-ec02ee4181c49b61fce1c8fb99292dbb8139cc90.tar.gz |
BASELINE: Update Chromium to 59.0.3071.134
Change-Id: Id02ef6fb2204c5fd21668a1c3e6911c83b17585a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/v8/src/code-stubs-utils.h')
-rw-r--r-- | chromium/v8/src/code-stubs-utils.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chromium/v8/src/code-stubs-utils.h b/chromium/v8/src/code-stubs-utils.h new file mode 100644 index 00000000000..4b411acb9bb --- /dev/null +++ b/chromium/v8/src/code-stubs-utils.h @@ -0,0 +1,49 @@ +// Copyright 2017 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_CODE_STUBS_UTILS_H_ +#define V8_CODE_STUBS_UTILS_H_ + +namespace v8 { +namespace internal { + +namespace compiler { +class CodeAssemblerState; +} // namespace compiler + +// ---------------------------------------------------------------------------- +// Support macro for defining code stubs with Turbofan. +// ---------------------------------------------------------------------------- +// +// A code stub generator is defined by writing: +// +// TF_STUB(name, code_assember_base_class) { +// ... +// } +// +// In the body of the generator function the arguments can be accessed +// as "Parameter(n)". +#define TF_STUB(StubName, AssemblerBase) \ + class StubName##Assembler : public AssemblerBase { \ + public: \ + typedef StubName::Descriptor Descriptor; \ + \ + explicit StubName##Assembler(compiler::CodeAssemblerState* state) \ + : AssemblerBase(state) {} \ + void Generate##StubName##Impl(const StubName* stub); \ + \ + Node* Parameter(Descriptor::ParameterIndices index) { \ + return CodeAssembler::Parameter(static_cast<int>(index)); \ + } \ + }; \ + void StubName::GenerateAssembly(compiler::CodeAssemblerState* state) const { \ + StubName##Assembler assembler(state); \ + assembler.Generate##StubName##Impl(this); \ + } \ + void StubName##Assembler::Generate##StubName##Impl(const StubName* stub) + +} // namespace internal +} // namespace v8 + +#endif // V8_CODE_STUBS_UTILS_H_ |