- 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 -4
View File
@@ -73,14 +73,11 @@ 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;
} }