diff options
author | Joseph Myers <joseph@codesourcery.com> | 2013-02-11 18:19:14 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2013-02-11 18:19:14 +0000 |
commit | aea7a9b9d2f9482d174ab95881b132de8472a388 (patch) | |
tree | 288649fb67917ffdbe5438013e4c277e521d9d88 /ports/sysdeps/unix/sysv/linux/mips/clone.S | |
parent | 046f153e209a5cd3f74fd7315743b51ff1853af1 (diff) | |
download | glibc-aea7a9b9d2f9482d174ab95881b132de8472a388.tar.gz glibc-aea7a9b9d2f9482d174ab95881b132de8472a388.tar.xz glibc-aea7a9b9d2f9482d174ab95881b132de8472a388.zip |
Add CFI information for MIPS assembly sources.
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/mips/clone.S')
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/mips/clone.S | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/mips/clone.S b/ports/sysdeps/unix/sysv/linux/mips/clone.S index 72360f9621..ef801882a9 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/clone.S +++ b/ports/sysdeps/unix/sysv/linux/mips/clone.S @@ -47,7 +47,8 @@ NESTED(__clone,4*SZREG,sp) SETUP_GP #endif PTR_SUBU sp, FRAMESZ - SETUP_GP64 (GPOFF, __clone) + cfi_adjust_cfa_offset (FRAMESZ) + SETUP_GP64_STACK (GPOFF, __clone) #ifdef __PIC__ SAVE_GP (GPOFF) #endif @@ -88,26 +89,35 @@ NESTED(__clone,4*SZREG,sp) /* Do the system call */ li v0,__NR_clone + cfi_endproc syscall bnez a3,L(error) beqz v0,L(thread_start) /* Successful return from the parent */ - RESTORE_GP64 + cfi_startproc + cfi_adjust_cfa_offset (FRAMESZ) + SETUP_GP64_STACK_CFI (GPOFF) + cfi_remember_state + RESTORE_GP64_STACK PTR_ADDU sp, FRAMESZ + cfi_adjust_cfa_offset (-FRAMESZ) ret /* Something bad happened -- no child created */ L(error): + cfi_restore_state #ifdef __PIC__ PTR_LA t9,__syscall_error - RESTORE_GP64 + RESTORE_GP64_STACK PTR_ADDU sp, FRAMESZ + cfi_adjust_cfa_offset (-FRAMESZ) jr t9 #else - RESTORE_GP64 + RESTORE_GP64_STACK PTR_ADDU sp, FRAMESZ + cfi_adjust_cfa_offset (-FRAMESZ) j __syscall_error #endif END(__clone) @@ -118,6 +128,7 @@ L(error): ENTRY(__thread_start) L(thread_start): + cfi_undefined ($31) /* cp is already loaded. */ SAVE_GP (GPOFF) /* The stackframe has been created on entry of clone(). */ |