diff --git a/lib/libc_r/uthread/pthread_private.h b/lib/libc_r/uthread/pthread_private.h index b60d8b7aed96..65661f7c7bab 100644 --- a/lib/libc_r/uthread/pthread_private.h +++ b/lib/libc_r/uthread/pthread_private.h @@ -96,8 +96,8 @@ #define FP_SAVE_UC(ucp) #define FP_RESTORE_UC(ucp) #define SET_RETURN_ADDR_JB(jb, ra) do { \ - (jb)[0]._jb[2] = (unsigned long)(ra) + 8UL; \ - (jb)[0]._jb[R_RA + 4] = 0; \ + (jb)[0]._jb[2] = (long)(ra); \ + (jb)[0]._jb[R_RA + 4] = (long)(ra); \ (jb)[0]._jb[R_T12 + 4] = (long)(ra); \ } while (0) #else diff --git a/lib/libkse/thread/thr_private.h b/lib/libkse/thread/thr_private.h index b60d8b7aed96..65661f7c7bab 100644 --- a/lib/libkse/thread/thr_private.h +++ b/lib/libkse/thread/thr_private.h @@ -96,8 +96,8 @@ #define FP_SAVE_UC(ucp) #define FP_RESTORE_UC(ucp) #define SET_RETURN_ADDR_JB(jb, ra) do { \ - (jb)[0]._jb[2] = (unsigned long)(ra) + 8UL; \ - (jb)[0]._jb[R_RA + 4] = 0; \ + (jb)[0]._jb[2] = (long)(ra); \ + (jb)[0]._jb[R_RA + 4] = (long)(ra); \ (jb)[0]._jb[R_T12 + 4] = (long)(ra); \ } while (0) #else diff --git a/lib/libpthread/thread/thr_private.h b/lib/libpthread/thread/thr_private.h index b60d8b7aed96..65661f7c7bab 100644 --- a/lib/libpthread/thread/thr_private.h +++ b/lib/libpthread/thread/thr_private.h @@ -96,8 +96,8 @@ #define FP_SAVE_UC(ucp) #define FP_RESTORE_UC(ucp) #define SET_RETURN_ADDR_JB(jb, ra) do { \ - (jb)[0]._jb[2] = (unsigned long)(ra) + 8UL; \ - (jb)[0]._jb[R_RA + 4] = 0; \ + (jb)[0]._jb[2] = (long)(ra); \ + (jb)[0]._jb[R_RA + 4] = (long)(ra); \ (jb)[0]._jb[R_T12 + 4] = (long)(ra); \ } while (0) #else