blob: 2a33e0e73d48a5ac22ffe2c7f8cabb4758931452 [file] [log] [blame]
// 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