- Set up correct stack pointer rule (value offset, not location offset).
- Init all registers to same value by default. gcc doesn't set up explicit CFI for same-value registers, so assume any register follows that rule until explicitly told otherwise (c.f. gdb/dwarf2-frame.c:793). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39817 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -73,15 +73,12 @@ Architecture::InitRegisterRules(CfaContext& context) const
|
|||||||
switch (registers[i].Type()) {
|
switch (registers[i].Type()) {
|
||||||
case REGISTER_TYPE_STACK_POINTER:
|
case REGISTER_TYPE_STACK_POINTER:
|
||||||
{
|
{
|
||||||
// TODO: determine why this fails to retrieve the
|
context.RegisterRule(dwarfReg)->SetToValueOffset(0);
|
||||||
// correct values.
|
|
||||||
// context.RegisterRule(dwarfReg)->SetToLocationOffset(0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
if (registers[i].IsCalleePreserved())
|
context.RegisterRule(dwarfReg)->SetToSameValue();
|
||||||
context.RegisterRule(dwarfReg)->SetToSameValue();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user