| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 128527
|
|
|
|
| |
llvm-svn: 128525
|
|
|
|
| |
llvm-svn: 128508
|
|
|
|
|
|
| |
(register-shifted register) ARM instruction.
llvm-svn: 128500
|
|
|
|
|
|
|
|
| |
Add code to emulate SUB (SP minus register) ARM instruction.
Add stubs for other ARM emulation functions that need to be written.
llvm-svn: 128491
|
|
|
|
| |
llvm-svn: 128479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix bugs in various ARM istruction emulation functions:
EmulateVPUSH
- Fix context.
- Fix bug calculating register numbers.
EmulateVPOP
- Fix context.
- Fix bug calculating register numbers.
EmulateShiftIMM
- Fix bug in assert statement.
EmulateLDMDA
- Fix context.
EmulateLDMDB
- Fix context.
EmulateLDMIB
- Fix context.
EmulateSTM
- Fix bug calculating lowest_set_bit.
EmulateSTMDA
- Fix context.
- Fix bug calculating lowest_set_bit.
EmulateSTMDB
- Fix context.
- Fix bug calculating lowest_set_bit.
EmulateSTMIB
- FIx context
EmulateLDRSBImmed
- Fix test to match correction in corrected manual
llvm-svn: 128409
|
|
|
|
|
|
|
|
|
|
|
| |
Modified the Disassembler::Instruction base class to contain an Opcode
instance so that we can know the bytes for an instruction without needing
to keep the data around.
Modified the DisassemblerLLVM's instruction class to correctly extract the
opcode bytes if all goes well.
llvm-svn: 128248
|
|
|
|
|
|
|
|
| |
public types and public enums. This was done to keep the SWIG stuff from
parsing all sorts of enums and types that weren't needed, and allows us to
abstract our API better.
llvm-svn: 128239
|
|
|
|
| |
llvm-svn: 128229
|
|
|
|
|
|
|
|
| |
- Remove duplicate write from EmulateLDRRtPCRelative.
- Add a missing encoding to EmulateADDSPImm.
- Fix minor problems in Thumb instruction tables.
llvm-svn: 128115
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
static archive that can be linked against. LLDB.framework/lldb.so
exports a very controlled API. Splitting the API into a static
library allows other tools (debugserver for now) to use the power
of the LLDB debugger core, yet not export it as its API is not
portable or maintainable. The Host layer and many of the other
internal only APIs can now be statically linked against.
Now LLDB.framework/lldb.so links against "liblldb-core.a" instead
of compiling the .o files only for the shared library. This fix
is only for compiling with Xcode as the Makefile based build already
does this.
The Xcode projecdt compiler has been changed to LLVM. Anyone using
Xcode 3 will need to manually change the compiler back to GCC 4.2,
or update to Xcode 4.
llvm-svn: 127963
|
|
|
|
| |
llvm-svn: 127898
|
|
|
|
|
|
|
|
|
| |
ReadCoreReg (which 'does the right thing', adding to pc when needed);
fixed places in code where extra addition was being passed along.
Fix bug in insn tables.
llvm-svn: 127838
|
|
|
|
|
|
|
|
| |
Remove inaccurate comments from EmulateInstruction::Context definition.
Fix contexts in a few arm instruction emulation routines.
llvm-svn: 127770
|
|
|
|
| |
llvm-svn: 127712
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an interface to a local or remote debugging platform. By default each host OS
that supports LLDB should be registering a "default" platform that will be
used unless a new platform is selected. Platforms are responsible for things
such as:
- getting process information by name or by processs ID
- finding platform files. This is useful for remote debugging where there is
an SDK with files that might already or need to be cached for debug access.
- getting a list of platform supported architectures in the exact order they
should be selected. This helps the native x86 platform on MacOSX select the
correct x86_64/i386 slice from universal binaries.
- Connect to remote platforms for remote debugging
- Resolving an executable including finding an executable inside platform
specific bundles (macosx uses .app bundles that contain files) and also
selecting the appropriate slice of universal files for a given platform.
So by default there is always a local platform, but remote platforms can be
connected to. I will soon be adding a new "platform" command that will support
the following commands:
(lldb) platform connect --name machine1 macosx connect://host:port
Connected to "machine1" platform.
(lldb) platform disconnect macosx
This allows LLDB to be well setup to do remote debugging and also once
connected process listing and finding for things like:
(lldb) process attach --name x<TAB>
The currently selected platform plug-in can now auto complete any available
processes that start with "x". The responsibilities for the platform plug-in
will soon grow and expand.
llvm-svn: 127286
|
|
|
|
|
|
|
|
|
| |
Add new instruction context for RFE instruction.
Add several new helper functions to help emulate RFE instruction
(including CurrentModeIsPrivileged, BadMode, and CPSRWriteByInstr).
llvm-svn: 126965
|
|
|
|
| |
llvm-svn: 126954
|
|
|
|
| |
llvm-svn: 126953
|
|
|
|
| |
llvm-svn: 126951
|
|
|
|
| |
llvm-svn: 126949
|
|
|
|
| |
llvm-svn: 126904
|
|
|
|
|
|
| |
Add addition context to EmulateInstruction contexts.
llvm-svn: 126903
|
|
|
|
|
|
| |
Add new context type & info structure for mul instruction.
llvm-svn: 126891
|
|
|
|
| |
llvm-svn: 126881
|
|
|
|
| |
llvm-svn: 126866
|
|
|
|
| |
llvm-svn: 126807
|
|
|
|
| |
llvm-svn: 126802
|
|
|
|
| |
llvm-svn: 126789
|
|
|
|
| |
llvm-svn: 126783
|
|
|
|
| |
llvm-svn: 126758
|
|
|
|
| |
llvm-svn: 126709
|
|
|
|
| |
llvm-svn: 126692
|
|
|
|
| |
llvm-svn: 126456
|
|
|
|
| |
llvm-svn: 126442
|
|
|
|
|
|
|
|
| |
attempt to
switch to Jazelle state fails, thus treating BXJ as a BX operation.
llvm-svn: 126423
|
|
|
|
| |
llvm-svn: 126355
|
|
|
|
|
|
| |
ARM)" operations.
llvm-svn: 126343
|
|
|
|
|
|
|
|
| |
function
and rename the original ThumbImmScaled() function to ThumbImm7Scaled().
llvm-svn: 126335
|
|
|
|
|
|
| |
Rd == 13. Add opcode entries for the generic "sub (sp minus immediate)" operations.
llvm-svn: 126293
|
|
|
|
| |
llvm-svn: 126283
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of Stephen Wilson's idea (thanks for the input Stephen!). What I ended up
doing was:
- Got rid of ArchSpec::CPU (which was a generic CPU enumeration that mimics
the contents of llvm::Triple::ArchType). We now rely upon the llvm::Triple
to give us the machine type from llvm::Triple::ArchType.
- There is a new ArchSpec::Core definition which further qualifies the CPU
core we are dealing with into a single enumeration. If you need support for
a new Core and want to debug it in LLDB, it must be added to this list. In
the future we can allow for dynamic core registration, but for now it is
hard coded.
- The ArchSpec can now be initialized with a llvm::Triple or with a C string
that represents the triple (it can just be an arch still like "i386").
- The ArchSpec can still initialize itself with a architecture type -- mach-o
with cpu type and subtype, or ELF with e_machine + e_flags -- and this will
then get translated into the internal llvm::Triple::ArchSpec + ArchSpec::Core.
The mach-o cpu type and subtype can be accessed using the getter functions:
uint32_t
ArchSpec::GetMachOCPUType () const;
uint32_t
ArchSpec::GetMachOCPUSubType () const;
But these functions are just converting out internal llvm::Triple::ArchSpec
+ ArchSpec::Core back into mach-o. Same goes for ELF.
All code has been updated to deal with the changes.
This should abstract us until later when the llvm::TargetSpec stuff gets
finalized and we can then adopt it.
llvm-svn: 126278
|
|
|
|
|
|
| |
subtle bugs.
llvm-svn: 126271
|
|
|
|
| |
llvm-svn: 126267
|
|
|
|
|
|
| |
Plus add missing break stmts for "case" blocks.
llvm-svn: 126265
|
|
|
|
|
|
|
|
| |
to ARMUtils.h.
Use them within EmulateInstructionARM.cpp to save repetitive typing.
llvm-svn: 126247
|
|
|
|
|
|
| |
and implement EmulateCMNImm() and EMulateCMNReg() methods.
llvm-svn: 126236
|
|
|
|
|
|
| |
be ARMV6T2_ABOVE, not ARMvAll.
llvm-svn: 126234
|
|
|
|
| |
llvm-svn: 126179
|