| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| #include "vm/assembler.h" |
| #include "vm/disassembler.h" |
| #include "vm/unit_test.h" |
| #include "vm/virtual_memory.h" |
| |
| namespace dart { |
| |
| // Disassembler only supported on IA32 and X64 now. |
| #if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64) |
| TEST_CASE(Disassembler) { |
| Assembler assembler; |
| // The used instructions work on all platforms. |
| Register reg = static_cast<Register>(0); |
| assembler.AddImmediate(reg, Immediate(1)); |
| assembler.AddImmediate(reg, Immediate(3)); |
| |
| // Only verify that the disassembler does not crash. |
| AssemblerTest test("Disassembler", &assembler); |
| uword entry = test.Assemble(); |
| Disassembler::Disassemble(entry, entry + assembler.CodeSize()); |
| } |
| #endif |
| |
| } // namespace dart |