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>
This commit is contained in:
Simon Hausmann 2013-07-19 16:07:07 +02:00 committed by The Qt Project
parent b17f57df9d
commit 713a4c5b1d
1 changed files with 7 additions and 4 deletions

View File

@ -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]);