mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-05 09:24:28 +00:00
Revert "[llvm.py] Implement interface to enhanced disassembler"
Chris Lattner says the edis interface is going away. It doesn't make sense to land something that will go away in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152508 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1,62 +0,0 @@
|
||||
from unittest import expectedFailure
|
||||
from unittest import skip
|
||||
|
||||
from .base import TestBase
|
||||
from ..disassembler import DisassemblerByteArraySource
|
||||
from ..disassembler import DisassemblerFileSource
|
||||
from ..disassembler import Disassembler
|
||||
from ..object import ObjectFile
|
||||
|
||||
class TestDisassembler(TestBase):
|
||||
def test_simple(self):
|
||||
sequence = '\x67\xe3\x81' # jcxz -127
|
||||
triple = 'i686-apple-darwin9'
|
||||
|
||||
source = DisassemblerByteArraySource(sequence)
|
||||
|
||||
disassembler = Disassembler(triple, source)
|
||||
instructions = list(disassembler.get_instructions())
|
||||
|
||||
self.assertEqual(len(instructions), 1)
|
||||
|
||||
i = instructions[0]
|
||||
self.assertEqual(str(i), '\tjcxz\t-127\n')
|
||||
self.assertEqual(i.byte_size, 3)
|
||||
self.assertEqual(i.id, 1032)
|
||||
self.assertTrue(i.is_branch)
|
||||
self.assertFalse(i.is_move)
|
||||
self.assertEqual(i.branch_target_id, 0)
|
||||
|
||||
tokens = list(i.get_tokens())
|
||||
self.assertEqual(len(tokens), 4)
|
||||
token = tokens[0]
|
||||
self.assertEqual(str(token), 'jcxz')
|
||||
self.assertFalse(token.is_whitespace)
|
||||
self.assertFalse(token.is_punctuation)
|
||||
self.assertTrue(token.is_opcode)
|
||||
self.assertFalse(token.is_literal)
|
||||
self.assertFalse(token.is_register)
|
||||
|
||||
self.assertTrue(tokens[1].is_whitespace)
|
||||
|
||||
operands = list(i.get_operands())
|
||||
self.assertEqual(len(operands), 1)
|
||||
|
||||
# TODO implement operand tests
|
||||
|
||||
@skip('This test is horribly broken and probably not even correct.')
|
||||
def test_read_instructions(self):
|
||||
filename = self.get_test_binary()
|
||||
o = ObjectFile(filename=filename)
|
||||
|
||||
for symbol in o.get_symbols():
|
||||
address = symbol.address
|
||||
offset = symbol.file_offset
|
||||
size = symbol.size
|
||||
|
||||
source = DisassemblerFileSource(filename, offset, length=size,
|
||||
start_address=address)
|
||||
|
||||
disassembler = Disassembler('x86-generic-gnu-linux', source)
|
||||
for instruction in disassembler.get_instructions():
|
||||
print instruction
|
Reference in New Issue
Block a user