]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aix-unwind.h (ucontext_for): Handle AIX 7.1 specificities.
authorOlivier Hainque <hainque@adacore.com>
Tue, 5 Jan 2016 18:10:31 +0000 (18:10 +0000)
committerOlivier Hainque <hainque@gcc.gnu.org>
Tue, 5 Jan 2016 18:10:31 +0000 (18:10 +0000)
2016-01-05  Olivier Hainque  <hainque@adacore.com>

* config/rs6000/aix-unwind.h (ucontext_for): Handle AIX 7.1
specificities.

From-SVN: r232082

libgcc/ChangeLog
libgcc/config/rs6000/aix-unwind.h

index 484c7268c6a56ced4a6a7a7ae682a94ba7e54fb0..4a9b5d39b8567c51bdb5008bf60bcd1a4aa0b67e 100644 (file)
@@ -1,3 +1,8 @@
+2016-01-05  Olivier Hainque  <hainque@adacore.com>
+
+       * config/rs6000/aix-unwind.h (ucontext_for): Handle AIX 7.1
+       specificities. 
+
 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
 
        Update copyright years.
index 16a1a9e1dc013306ca78c37eb7c85b4c0a5829b8..4edeaf4606bed79555e1fa975c3f28826345d0b8 100644 (file)
@@ -64,7 +64,7 @@
 #endif
 
 /* Now on to MD_FALLBACK_FRAME_STATE_FOR.
-   32bit AIX 5.2 and 5.3 only at this stage.  */
+   32bit AIX 5.2, 5.3 and 7.1 only at this stage.  */
 
 #include <stdlib.h>
 #include <stddef.h>
@@ -128,8 +128,9 @@ ucontext_for (struct _Unwind_Context *context)
 {
   const unsigned int * ra = context->ra;
 
-  /* AIX 5.2 and 5.3, threaded or not, share common patterns and feature
-     variants depending on the configured kernel (unix_mp or unix_64).  */
+  /* AIX 5.2, 5.3 and 7.1, threaded or not, share common patterns
+     and feature variants depending on the configured kernel (unix_mp
+     or unix_64).  */
 
   if (*(ra - 5) == 0x4c00012c     /* isync             */
       && *(ra - 4) == 0x80ec0000  /* lwz     r7,0(r12) */
@@ -150,6 +151,10 @@ ucontext_for (struct _Unwind_Context *context)
              /* AIX 5.3 */
            case 0x835a0570:  /* lwz r26,1392(r26) */
              return (ucontext_t *)(context->cfa + 0x40);
+
+             /* AIX 7.1 */
+           case 0x2c1a0000:  /* cmpwi   r26,0 */
+             return (ucontext_t *)(context->cfa + 0x40);
                
            default:
              return 0;