diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-07-19 16:07:07 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-23 13:00:36 +0200 |
commit | 713a4c5b1d601f57d538fdbb1e8f6bc05ce07275 (patch) | |
tree | 5524437eb3da9e67739947b30ef9b94382b1263a /tools | |
parent | b17f57df9d7d261c3e0739f2b589258cd2374d56 (diff) |
Fix FDE generation on Intel 32-bit
Make the generated FDE program reflect that ESI and EDI are callee
saved registers. For some reason the program we've had in qv4unwindhelper_p-dw.h
for 32-bit was already correct, but the generator was broken (and even mixed
up the registers).
Change-Id: Id8132580d20636c8ea17f8460d161547227c95fc
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/fdegen/main.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/fdegen/main.cpp b/tools/fdegen/main.cpp index 313be40351..8c24fb88af 100644 --- a/tools/fdegen/main.cpp +++ b/tools/fdegen/main.cpp @@ -87,10 +87,10 @@ enum DwarfRegs { EDX = 1, ECX = 2, EBX = 3, - ESI = 4, - EDI = 5, - EBP = 6, - ESP = 7, + ESP = 4, + EBP = 5, + ESI = 6, + EDI = 7, EIP = 8, InstructionPointerRegister = EIP, @@ -105,6 +105,9 @@ static const DwarfRegs calleeSavedRegisters[] = { #if defined(Q_PROCESSOR_X86_64) R12, R14 +#elif defined(Q_PROCESSOR_X86) + ESI, + EDI #endif }; static const int calleeSavedRegisterCount = sizeof(calleeSavedRegisters) / sizeof(calleeSavedRegisters[0]); |