mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-17 13:47:37 +01:00
(linux_scratch_loc): Add a default-case which simply returns the
register-location. This is so that special-cases such as r0 are handled properly. (Logical change 1.117)
This commit is contained in:
parent
c23814c91c
commit
8d7426fe0a
1 changed files with 9 additions and 0 deletions
|
@ -87,6 +87,9 @@ linux_scratch_loc (struct cursor *c, unw_regnum_t reg)
|
||||||
case UNW_IA64_AR_CSD: addr += LINUX_SC_AR_CSD_OFF; break;
|
case UNW_IA64_AR_CSD: addr += LINUX_SC_AR_CSD_OFF; break;
|
||||||
case UNW_IA64_AR_SSD: addr += LINUX_SC_AR_SSD_OFF; break;
|
case UNW_IA64_AR_SSD: addr += LINUX_SC_AR_SSD_OFF; break;
|
||||||
case UNW_IA64_AR_CCV: addr += LINUX_SC_AR_CCV; break;
|
case UNW_IA64_AR_CCV: addr += LINUX_SC_AR_CCV; break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return IA64_REG_LOC (c, reg);
|
||||||
}
|
}
|
||||||
return IA64_LOC_ADDR (addr, 0);
|
return IA64_LOC_ADDR (addr, 0);
|
||||||
|
|
||||||
|
@ -119,6 +122,9 @@ linux_scratch_loc (struct cursor *c, unw_regnum_t reg)
|
||||||
case UNW_IA64_FR + 6 ... UNW_IA64_FR + 11:
|
case UNW_IA64_FR + 6 ... UNW_IA64_FR + 11:
|
||||||
addr += LINUX_PT_F6_OFF + 16 * (reg - (UNW_IA64_FR + 6));
|
addr += LINUX_PT_F6_OFF + 16 * (reg - (UNW_IA64_FR + 6));
|
||||||
return IA64_LOC_ADDR (addr, IA64_LOC_TYPE_FP);
|
return IA64_LOC_ADDR (addr, IA64_LOC_TYPE_FP);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return IA64_REG_LOC (c, reg);
|
||||||
}
|
}
|
||||||
return IA64_LOC_ADDR (addr, 0);
|
return IA64_LOC_ADDR (addr, 0);
|
||||||
|
|
||||||
|
@ -147,6 +153,9 @@ linux_scratch_loc (struct cursor *c, unw_regnum_t reg)
|
||||||
|
|
||||||
case UNW_IA64_AR_RSC: addr += LINUX_OLD_PT_RSC_OFF; break;
|
case UNW_IA64_AR_RSC: addr += LINUX_OLD_PT_RSC_OFF; break;
|
||||||
case UNW_IA64_AR_CCV: addr += LINUX_OLD_PT_CCV_OFF; break;
|
case UNW_IA64_AR_CCV: addr += LINUX_OLD_PT_CCV_OFF; break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return IA64_REG_LOC (c, reg);
|
||||||
}
|
}
|
||||||
return IA64_LOC_ADDR (addr, 0);
|
return IA64_LOC_ADDR (addr, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue