- 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:
Rene Gollent 2010-12-11 20:13:15 +00:00
parent 87d85ea382
commit 2e3906da98
1 changed files with 2 additions and 5 deletions

View File

@ -73,15 +73,12 @@ Architecture::InitRegisterRules(CfaContext& context) const
switch (registers[i].Type()) {
case REGISTER_TYPE_STACK_POINTER:
{
// TODO: determine why this fails to retrieve the
// correct values.
// context.RegisterRule(dwarfReg)->SetToLocationOffset(0);
context.RegisterRule(dwarfReg)->SetToValueOffset(0);
break;
}
default:
{
if (registers[i].IsCalleePreserved())
context.RegisterRule(dwarfReg)->SetToSameValue();
context.RegisterRule(dwarfReg)->SetToSameValue();
break;
}
}