aix-unwind.h (ucontext_for): Handle AIX 7.1 specificities.

2016-01-05  Olivier Hainque  <hainque@adacore.com>

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

From-SVN: r232082
This commit is contained in:
Olivier Hainque 2016-01-05 18:10:31 +00:00 committed by Olivier Hainque
parent 0d19c66df4
commit a22189835a
2 changed files with 13 additions and 3 deletions

View 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.

View 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;