2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
* nds32/syscall_argv.S: Correct the method to set errno. * nds32/syscall_argvlen.S: Ditto. * nds32/syscall_chdir.S: Ditto. * nds32/syscall_chmod.S: Ditto. * nds32/syscall_close.S: Ditto. * nds32/syscall_error_handler.S: Ditto. * nds32/syscall_fstat.S: Ditto. * nds32/syscall_getpid.S: Ditto. * nds32/syscall_gettimeofday.S: Ditto. * nds32/syscall_isatty.S: Ditto. * nds32/syscall_kill.S: Ditto. * nds32/syscall_link.S: Ditto. * nds32/syscall_lseek.S: Ditto. * nds32/syscall_open.S: Ditto. * nds32/syscall_read.S: Ditto. * nds32/syscall_rename.S: Ditto. * nds32/syscall_sbrk.S: Ditto. * nds32/syscall_stat.S: Ditto. * nds32/syscall_system.S: Ditto. * nds32/syscall_time.S: Ditto. * nds32/syscall_times.S: Ditto. * nds32/syscall_unlink.S: Ditto. * nds32/syscall_utime.S: Ditto. * nds32/syscall_write.S: Ditto.
This commit is contained in:
@ -31,7 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include "syscall_extra.h"
|
||||
|
||||
|
||||
.extern errno
|
||||
.extern _impure_ptr /* The first element is _errno. */
|
||||
.text
|
||||
.global __syscall_error_handler
|
||||
.type __syscall_error_handler, @function
|
||||
@ -41,7 +41,8 @@ __syscall_error_handler:
|
||||
addi $r1, $r0, 1
|
||||
bnez $r1, 1f /* Branch if success. */
|
||||
syscall SYS_geterr /* There is something wrong. */
|
||||
s.w $r0, errno /* Store error code into errno. */
|
||||
l.w $r15, _impure_ptr
|
||||
swi $r0, [$r15] /* Set errno. */
|
||||
move $r0, -1
|
||||
1:
|
||||
ret
|
||||
|
Reference in New Issue
Block a user