diff options
Diffstat (limited to 'coregrind/m_libcassert.c')
-rw-r--r-- | coregrind/m_libcassert.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/coregrind/m_libcassert.c b/coregrind/m_libcassert.c index 731864ff..63e3f1cd 100644 --- a/coregrind/m_libcassert.c +++ b/coregrind/m_libcassert.c @@ -135,6 +135,22 @@ (srP)->misc.ARM.r11 = block[4]; \ (srP)->misc.ARM.r7 = block[5]; \ } +#elif defined(VGP_s390x_linux) +# define GET_STARTREGS(srP) \ + { ULong ia, sp, fp, lr; \ + __asm__ __volatile__( \ + "bras %0,0f;" \ + "0: lgr %1,15;" \ + "lgr %2,11;" \ + "lgr %3,14;" \ + : "=r" (ia), "=r" (sp),"=r" (fp),"=r" (lr) \ + /* no read & clobber */ \ + ); \ + (srP)->r_pc = ia; \ + (srP)->r_sp = sp; \ + (srP)->misc.S390X.r_fp = fp; \ + (srP)->misc.S390X.r_lr = lr; \ + } #else # error Unknown platform #endif |