diff options
author | Johnny Chen <johnny.chen@apple.com> | 2012-02-29 01:07:59 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2012-02-29 01:07:59 +0000 |
commit | e979eda7e0dc03aced5049aed8338b0b8fe8fec5 (patch) | |
tree | 2bcb5b47ab291fb0beb6211b76d578b1aa9bd918 /lldb/source/Plugins/Process/POSIX | |
parent | 39ea458b733e7919a7faec12b5b53888a0f5691a (diff) | |
download | bcm5719-llvm-e979eda7e0dc03aced5049aed8338b0b8fe8fec5.tar.gz bcm5719-llvm-e979eda7e0dc03aced5049aed8338b0b8fe8fec5.zip |
rdar://problem/10652076
Initial step -- infrastructure change -- to fix the bug. Change the RegisterInfo data structure
to contain two additional fields (uint32_t *value_rges and uint32_t *invalidate_regs) to facilitate
architectures which have register mapping.
Update all existing RegsiterInfo arrays to have two extra NULL's (the additional fields) in each row,
GDBRemoteRegisterContext.cpp is modified to add d0-d15 and q0-q15 register info entries which take
advantage of the value_regs field to specify the containment relationship:
d0 -> (s0, s1)
...
d15 -> (s30, s31)
q0 -> (d0, d1)
...
q15 -> (d30, d31)
llvm-svn: 151686
Diffstat (limited to 'lldb/source/Plugins/Process/POSIX')
-rw-r--r-- | lldb/source/Plugins/Process/POSIX/RegisterContext_i386.cpp | 8 | ||||
-rw-r--r-- | lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/lldb/source/Plugins/Process/POSIX/RegisterContext_i386.cpp b/lldb/source/Plugins/Process/POSIX/RegisterContext_i386.cpp index bc415828b26..9485164c2b6 100644 --- a/lldb/source/Plugins/Process/POSIX/RegisterContext_i386.cpp +++ b/lldb/source/Plugins/Process/POSIX/RegisterContext_i386.cpp @@ -264,23 +264,23 @@ g_reg_sets[k_num_register_sets] = #define DEFINE_GPR(reg, alt, kind1, kind2, kind3, kind4) \ { #reg, alt, GPR_SIZE(reg), GPR_OFFSET(reg), eEncodingUint, \ - eFormatHex, { kind1, kind2, kind3, kind4, gpr_##reg } } + eFormatHex, { kind1, kind2, kind3, kind4, gpr_##reg }, NULL, NULL } #define DEFINE_FPR(reg, kind1, kind2, kind3, kind4) \ { #reg, NULL, FPR_SIZE(reg), FPR_OFFSET(reg), eEncodingUint, \ - eFormatHex, { kind1, kind2, kind3, kind4, fpu_##reg } } + eFormatHex, { kind1, kind2, kind3, kind4, fpu_##reg }, NULL, NULL } #define DEFINE_FP(reg, i) \ { #reg#i, NULL, FP_SIZE, FPR_OFFSET(reg[i]), eEncodingVector, \ eFormatVectorOfUInt8, \ { dwarf_##reg##i, dwarf_##reg##i, \ - LLDB_INVALID_REGNUM, gdb_##reg##i, fpu_##reg##i } } + LLDB_INVALID_REGNUM, gdb_##reg##i, fpu_##reg##i }, NULL, NULL } #define DEFINE_XMM(reg, i) \ { #reg#i, NULL, XMM_SIZE, FPR_OFFSET(reg[i]), eEncodingVector, \ eFormatVectorOfUInt8, \ { dwarf_##reg##i, dwarf_##reg##i, \ - LLDB_INVALID_REGNUM, gdb_##reg##i, fpu_##reg##i } } + LLDB_INVALID_REGNUM, gdb_##reg##i, fpu_##reg##i }, NULL, NULL } static RegisterInfo g_register_infos[k_num_registers] = diff --git a/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp b/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp index fc9dfbe8284..ddee82f359a 100644 --- a/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp +++ b/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp @@ -307,23 +307,23 @@ g_reg_sets[k_num_register_sets] = #define DEFINE_GPR(reg, alt, kind1, kind2, kind3, kind4) \ { #reg, alt, GPR_SIZE(reg), GPR_OFFSET(reg), eEncodingUint, \ - eFormatHex, { kind1, kind2, kind3, kind4, gpr_##reg } } + eFormatHex, { kind1, kind2, kind3, kind4, gpr_##reg }, NULL, NULL } #define DEFINE_FPR(reg, kind1, kind2, kind3, kind4) \ { #reg, NULL, FPR_SIZE(reg), FPR_OFFSET(reg), eEncodingUint, \ - eFormatHex, { kind1, kind2, kind3, kind4, fpu_##reg } } + eFormatHex, { kind1, kind2, kind3, kind4, fpu_##reg }, NULL, NULL } #define DEFINE_FP(reg, i) \ { #reg#i, NULL, FP_SIZE, FPR_OFFSET(reg[i]), eEncodingVector, \ eFormatVectorOfUInt8, \ { gcc_dwarf_fpu_##reg##i, gcc_dwarf_fpu_##reg##i, \ - LLDB_INVALID_REGNUM, gdb_fpu_##reg##i, fpu_##reg##i } } + LLDB_INVALID_REGNUM, gdb_fpu_##reg##i, fpu_##reg##i }, NULL, NULL } #define DEFINE_XMM(reg, i) \ { #reg#i, NULL, XMM_SIZE, FPR_OFFSET(reg[i]), eEncodingVector, \ eFormatVectorOfUInt8, \ { gcc_dwarf_fpu_##reg##i, gcc_dwarf_fpu_##reg##i, \ - LLDB_INVALID_REGNUM, gdb_fpu_##reg##i, fpu_##reg##i } } + LLDB_INVALID_REGNUM, gdb_fpu_##reg##i, fpu_##reg##i }, NULL, NULL } #define REG_CONTEXT_SIZE (sizeof(GPR) + sizeof(RegisterContext_x86_64::FPU)) |