diff options
author | Michaël Zasso <targos@protonmail.com> | 2018-03-07 08:54:53 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2018-03-07 16:48:52 +0100 |
commit | 88786fecff336342a56e6f2e7ff3b286be716e47 (patch) | |
tree | 92e6ba5b8ac8dae1a058988d20c9d27bfa654390 /deps/v8/src/compiler/raw-machine-assembler.cc | |
parent | 4e86f9b5ab83cbabf43839385bf383e6a7ef7d19 (diff) | |
download | android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.gz android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.bz2 android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.zip |
deps: update V8 to 6.5.254.31
PR-URL: https://github.com/nodejs/node/pull/18453
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yang Guo <yangguo@chromium.org>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'deps/v8/src/compiler/raw-machine-assembler.cc')
-rw-r--r-- | deps/v8/src/compiler/raw-machine-assembler.cc | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/deps/v8/src/compiler/raw-machine-assembler.cc b/deps/v8/src/compiler/raw-machine-assembler.cc index bed2f628d9..ed67c06cc7 100644 --- a/deps/v8/src/compiler/raw-machine-assembler.cc +++ b/deps/v8/src/compiler/raw-machine-assembler.cc @@ -134,7 +134,6 @@ void RawMachineAssembler::Return(Node* value) { current_block_ = nullptr; } - void RawMachineAssembler::Return(Node* v1, Node* v2) { Node* values[] = {Int32Constant(0), v1, v2}; Node* ret = MakeNode(common()->Return(2), 3, values); @@ -142,7 +141,6 @@ void RawMachineAssembler::Return(Node* v1, Node* v2) { current_block_ = nullptr; } - void RawMachineAssembler::Return(Node* v1, Node* v2, Node* v3) { Node* values[] = {Int32Constant(0), v1, v2, v3}; Node* ret = MakeNode(common()->Return(3), 4, values); @@ -150,6 +148,24 @@ void RawMachineAssembler::Return(Node* v1, Node* v2, Node* v3) { current_block_ = nullptr; } +void RawMachineAssembler::Return(Node* v1, Node* v2, Node* v3, Node* v4) { + Node* values[] = {Int32Constant(0), v1, v2, v3, v4}; + Node* ret = MakeNode(common()->Return(4), 5, values); + schedule()->AddReturn(CurrentBlock(), ret); + current_block_ = nullptr; +} + +void RawMachineAssembler::Return(int count, Node* vs[]) { + typedef Node* Node_ptr; + Node** values = new Node_ptr[count + 1]; + values[0] = Int32Constant(0); + for (int i = 0; i < count; ++i) values[i + 1] = vs[i]; + Node* ret = MakeNode(common()->Return(count), count + 1, values); + schedule()->AddReturn(CurrentBlock(), ret); + current_block_ = nullptr; + delete[] values; +} + void RawMachineAssembler::PopAndReturn(Node* pop, Node* value) { Node* values[] = {pop, value}; Node* ret = MakeNode(common()->Return(1), 2, values); @@ -172,6 +188,14 @@ void RawMachineAssembler::PopAndReturn(Node* pop, Node* v1, Node* v2, current_block_ = nullptr; } +void RawMachineAssembler::PopAndReturn(Node* pop, Node* v1, Node* v2, Node* v3, + Node* v4) { + Node* values[] = {pop, v1, v2, v3, v4}; + Node* ret = MakeNode(common()->Return(4), 5, values); + schedule()->AddReturn(CurrentBlock(), ret); + current_block_ = nullptr; +} + void RawMachineAssembler::DebugAbort(Node* message) { AddNode(machine()->DebugAbort(), message); } @@ -430,7 +454,7 @@ void RawMachineAssembler::Bind(RawMachineLabel* label, str << "Binding label without closing previous block:" << "\n# label: " << info << "\n# previous block: " << *current_block_; - FATAL(str.str().c_str()); + FATAL("%s", str.str().c_str()); } Bind(label); current_block_->set_debug_info(info); @@ -495,7 +519,7 @@ RawMachineLabel::~RawMachineLabel() { } else { str << "A label has been used but it's not bound."; } - FATAL(str.str().c_str()); + FATAL("%s", str.str().c_str()); #endif // DEBUG } |