diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-01-30 11:24:17 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-01-30 11:24:17 +0100 |
commit | 25081892c432b0234fd29bdbf970c89f2083eed5 (patch) | |
tree | 9d6cf6a29c0a1bdac65791a5798295c1f978b73b /gcc/ada/sigtramp-ppcvxw.c | |
parent | 4f0534570bc8bb662747136a348991a964cb022b (diff) | |
download | gcc-25081892c432b0234fd29bdbf970c89f2083eed5.zip gcc-25081892c432b0234fd29bdbf970c89f2083eed5.tar.gz gcc-25081892c432b0234fd29bdbf970c89f2083eed5.tar.bz2 |
[multiple changes]
2012-01-30 Robert Dewar <dewar@adacore.com>
* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting.
2012-01-30 Olivier Hainque <hainque@adacore.com>
* sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back +
comments.
2012-01-30 Thomas Quinot <quinot@adacore.com>
* gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb,
sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb,
sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type):
New subprogram (extracted from
Sem_Cat.Validate_Remote_Access_Object_Type_Declaration).
(Einfo.Is_Remote_Types): Now applies to generic types. Update
documentation accordingly.
(Sem_Ch12.Analyze_Associations): A RACW type is acceptable as
actual for a formal type to which a pragma Remote_Access_Type
applies.
(Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
Remote_Access_Type.
(Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can
be applied to a generic type if pragma Remote_Access_Type
applies, in which case the type of the attribute is
System.Partition_Interface.RACW_Stub_Type.
From-SVN: r183698
Diffstat (limited to 'gcc/ada/sigtramp-ppcvxw.c')
-rw-r--r-- | gcc/ada/sigtramp-ppcvxw.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ada/sigtramp-ppcvxw.c b/gcc/ada/sigtramp-ppcvxw.c index a8fc801..bb6945b 100644 --- a/gcc/ada/sigtramp-ppcvxw.c +++ b/gcc/ada/sigtramp-ppcvxw.c @@ -6,7 +6,7 @@ * * * Asm Implementation File * * * - * Copyright (C) 2011, Free Software Foundation, Inc. * + * Copyright (C) 2011-2012, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -169,15 +169,23 @@ CR(".cfi_def_cfa " S(CFA_REG) ", 0") /* Register location blocks ------------------------ - Rules to find registers of interest from the CFA. This should - comprise all the non-volatile registers relevant to the interrupted - context. */ + Rules to find registers of interest from the CFA. This should comprise + all the non-volatile registers relevant to the interrupted context. + + Note that we include r1 in this set, unlike the libgcc unwinding + fallbacks. This is useful for fallbacks to allow the use of r1 in CFI + expressions and the absence of rule for r1 gets compensated by using the + target CFA instead. We don't need the expression facility here and + setup a fake CFA to allow very simple offset expressions, so having a + rule for r1 is the proper thing to do. We for sure have observed + crashes in some cases without it. */ #define COMMON_CFI(REG) \ ".cfi_offset " S(REGNO_##REG) "," S(REG_SET_##REG) #define CFI_COMMON_REGS \ CR("# CFI for common registers\n") \ +TCR(COMMON_CFI(GR(1))) \ TCR(COMMON_CFI(GR(2))) \ TCR(COMMON_CFI(GR(3))) \ TCR(COMMON_CFI(GR(4))) \ |