Skip to content

Commit

Permalink
[LLDB][MIPS] Fix TestDisassembleRawData.py
Browse files Browse the repository at this point in the history
Patch by Nitesh Jain.

Summary: This patch adds check for the correctness of disassembling instruction for MIPS target.

Reviewers: emaste, clayborg, ovyalov
Subscribers: lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep
Differential: http://reviews.llvm.org/D15915
llvm-svn: 257587
  • Loading branch information
Sagar Thakur committed Jan 13, 2016
1 parent c4fad65 commit dd11364
Showing 1 changed file with 17 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,18 @@ class DisassembleRawDataTestCase(TestBase):
def test_disassemble_raw_data(self):
"""Test disassembling raw bytes with the API."""
# Create a target from the debugger.
target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "x86_64")
arch = self.getArchitecture()
if re.match("mips*el",arch):
target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "mipsel")
raw_bytes = bytearray([0x21,0xf0, 0xa0, 0x03])
elif re.match("mips",arch):
target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "mips")
raw_bytes = bytearray([0x03,0xa0, 0xf0, 0x21])
else:
target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "x86_64")
raw_bytes = bytearray([0x48, 0x89, 0xe5])

self.assertTrue(target, VALID_TARGET)

raw_bytes = bytearray([0x48, 0x89, 0xe5])

insts = target.GetInstructions(lldb.SBAddress(0, target), raw_bytes)

inst = insts.GetInstructionAtIndex(0)
Expand All @@ -34,6 +41,9 @@ def test_disassemble_raw_data(self):
print()
print("Raw bytes: ", [hex(x) for x in raw_bytes])
print("Disassembled%s" % str(inst))

self.assertTrue (inst.GetMnemonic(target) == "movq")
self.assertTrue (inst.GetOperands(target) == '%' + "rsp, " + '%' + "rbp")
if re.match("mips",arch):
self.assertTrue (inst.GetMnemonic(target) == "move")
self.assertTrue (inst.GetOperands(target) == '$' + "fp, " + '$' + "sp")
else:
self.assertTrue (inst.GetMnemonic(target) == "movq")
self.assertTrue (inst.GetOperands(target) == '%' + "rsp, " + '%' + "rbp")

0 comments on commit dd11364

Please sign in to comment.