| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "src/interpreter/bytecodes.h" | 9 #include "src/interpreter/bytecodes.h" |
| 10 #include "test/unittests/interpreter/bytecode-utils.h" | 10 #include "test/unittests/interpreter/bytecode-utils.h" |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 | 175 |
| 176 TEST(Bytecodes, DecodeBytecodeAndOperands) { | 176 TEST(Bytecodes, DecodeBytecodeAndOperands) { |
| 177 struct BytecodesAndResult { | 177 struct BytecodesAndResult { |
| 178 const uint8_t bytecode[32]; | 178 const uint8_t bytecode[32]; |
| 179 const size_t length; | 179 const size_t length; |
| 180 int parameter_count; | 180 int parameter_count; |
| 181 const char* output; | 181 const char* output; |
| 182 }; | 182 }; |
| 183 | 183 |
| 184 const BytecodesAndResult cases[] = { | 184 const BytecodesAndResult cases[] = { |
| 185 {{B(LdaSmi), U8(0x01)}, 2, 0, " LdaSmi [1]"}, | 185 {{B(LdaSmi), U8(1)}, 2, 0, " LdaSmi [1]"}, |
| 186 {{B(Wide), B(LdaSmi), U16(1000)}, 4, 0, " LdaSmi.Wide [1000]"}, | 186 {{B(Wide), B(LdaSmi), U16(1000)}, 4, 0, " LdaSmi.Wide [1000]"}, |
| 187 {{B(ExtraWide), B(LdaSmi), U32(100000)}, | 187 {{B(ExtraWide), B(LdaSmi), U32(100000)}, |
| 188 6, | 188 6, |
| 189 0, | 189 0, |
| 190 "LdaSmi.ExtraWide [100000]"}, | 190 "LdaSmi.ExtraWide [100000]"}, |
| 191 {{B(LdaSmi), 0xff}, 2, 0, " LdaSmi [-1]"}, | 191 {{B(LdaSmi), U8(-1)}, 2, 0, " LdaSmi [-1]"}, |
| 192 {{B(Wide), B(LdaSmi), 0x18, 0xfc}, 4, 0, " LdaSmi.Wide [-1000]"}, | 192 {{B(Wide), B(LdaSmi), U16(-1000)}, 4, 0, " LdaSmi.Wide [-1000]"}, |
| 193 {{B(ExtraWide), B(LdaSmi), U32(-100000)}, | 193 {{B(ExtraWide), B(LdaSmi), U32(-100000)}, |
| 194 6, | 194 6, |
| 195 0, | 195 0, |
| 196 "LdaSmi.ExtraWide [-100000]"}, | 196 "LdaSmi.ExtraWide [-100000]"}, |
| 197 {{B(Star), R8(5)}, 2, 0, " Star r5"}, | 197 {{B(Star), R8(5)}, 2, 0, " Star r5"}, |
| 198 {{B(Wide), B(Star), R16(136)}, 4, 0, " Star.Wide r136"}, | 198 {{B(Wide), B(Star), R16(136)}, 4, 0, " Star.Wide r136"}, |
| 199 {{B(Wide), B(Call), R16(134), R16(135), U16(0x02), U16(177)}, | 199 {{B(Wide), B(Call), R16(134), R16(135), U16(2), U16(177)}, |
| 200 10, | 200 10, |
| 201 0, | 201 0, |
| 202 "Call.Wide r134, r135, #2, [177]"}, | 202 "Call.Wide r134, r135, #2, [177]"}, |
| 203 {{B(Ldar), | 203 {{B(Ldar), |
| 204 static_cast<uint8_t>(Register::FromParameterIndex(2, 3).ToOperand())}, | 204 static_cast<uint8_t>(Register::FromParameterIndex(2, 3).ToOperand())}, |
| 205 2, | 205 2, |
| 206 3, | 206 3, |
| 207 " Ldar a1"}, | 207 " Ldar a1"}, |
| 208 {{B(Wide), B(CreateObjectLiteral), U16(513), U16(1027), U16(165)}, | 208 {{B(Wide), B(CreateObjectLiteral), U16(513), U16(1027), U16(165)}, |
| 209 7, | 209 7, |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 std::set<std::string> names; | 391 std::set<std::string> names; |
| 392 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kNone)); | 392 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kNone)); |
| 393 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kRead)); | 393 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kRead)); |
| 394 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kWrite)); | 394 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kWrite)); |
| 395 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kReadWrite)); | 395 names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kReadWrite)); |
| 396 CHECK_EQ(names.size(), 4); | 396 CHECK_EQ(names.size(), 4); |
| 397 } | 397 } |
| 398 } // namespace interpreter | 398 } // namespace interpreter |
| 399 } // namespace internal | 399 } // namespace internal |
| 400 } // namespace v8 | 400 } // namespace v8 |
| OLD | NEW |