nitesh.jain created this revision. nitesh.jain added reviewers: clayborg, ovehakola, emaste. nitesh.jain added subscribers: jaydeep, bhushan, sagar, mohit.bhakkad, lldb-commits. nitesh.jain set the repository for this revision to rL LLVM.
This patch adds check for the correctness of Disassembling instruction for MIPS target. Repository: rL LLVM http://reviews.llvm.org/D15915 Files: packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py Index: packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py =================================================================== --- packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py +++ packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py @@ -21,11 +21,18 @@ 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) @@ -34,6 +41,9 @@ 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")
Index: packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py =================================================================== --- packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py +++ packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py @@ -21,11 +21,18 @@ 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) @@ -34,6 +41,9 @@ 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")
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits