Changed the Opcode::GetData() API so that it didn't

require an AddressClass, which is useless at this
point since it already knows the distinction between
32-bit Thumb opcodes and 32-bit ARM opcodes.

llvm-svn: 161382
This commit is contained in:
Sean Callanan 2012-08-07 01:44:58 +00:00
parent 79101b5cb0
commit cd4ae1ab94
4 changed files with 7 additions and 15 deletions

View File

@ -225,8 +225,7 @@ namespace lldb_private {
// Get the opcode exactly as it would be laid out in memory.
uint32_t
GetData (DataExtractor &data,
lldb::AddressClass address_class) const;
GetData (DataExtractor &data) const;
protected:

View File

@ -893,7 +893,7 @@ Instruction::Emulate (const ArchSpec &arch,
uint32_t
Instruction::GetData (DataExtractor &data)
{
return m_opcode.GetData(data, GetAddressClass ());
return m_opcode.GetData(data);
}
InstructionList::InstructionList() :

View File

@ -86,7 +86,7 @@ Opcode::GetDataByteOrder () const
}
uint32_t
Opcode::GetData (DataExtractor &data, lldb::AddressClass address_class) const
Opcode::GetData (DataExtractor &data) const
{
uint32_t byte_size = GetByteSize ();
@ -101,12 +101,6 @@ Opcode::GetData (DataExtractor &data, lldb::AddressClass address_class) const
case Opcode::eType8: buffer_sp.reset (new DataBufferHeap (&m_data.inst8, byte_size)); break;
case Opcode::eType16: buffer_sp.reset (new DataBufferHeap (&m_data.inst16, byte_size)); break;
case Opcode::eType16_2:
case Opcode::eType32:
// The only thing that uses eAddressClassCodeAlternateISA currently
// is Thumb. If this ever changes, we will need to pass in more
// information like an additional "const ArchSpec &arch". For now
// this will do
if (m_type == Opcode::eType16_2 || address_class == eAddressClassCodeAlternateISA)
{
// 32 bit thumb instruction, we need to sizzle this a bit
uint8_t buf[4];
@ -116,10 +110,9 @@ Opcode::GetData (DataExtractor &data, lldb::AddressClass address_class) const
buf[3] = m_data.inst.bytes[1];
buffer_sp.reset (new DataBufferHeap (buf, byte_size));
}
else
{
buffer_sp.reset (new DataBufferHeap (&m_data.inst32, byte_size));
}
break;
case Opcode::eType32:
buffer_sp.reset (new DataBufferHeap (&m_data.inst32, byte_size));
break;
case Opcode::eType64: buffer_sp.reset (new DataBufferHeap (&m_data.inst64, byte_size)); break;
case Opcode::eTypeBytes:buffer_sp.reset (new DataBufferHeap (GetOpcodeBytes(), byte_size)); break;

View File

@ -198,7 +198,7 @@ public:
DataExtractor data;
const AddressClass address_class = GetAddressClass ();
if (m_opcode.GetData(data, address_class))
if (m_opcode.GetData(data))
{
char out_string[512];