* traps.c (cris_break_13_handler): Pass lseek
offset parameter as sign-extended.
This commit is contained in:
parent
1c3e1c03ee
commit
7cf1d8af2f
2 changed files with 13 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2010-10-07 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* traps.c (cris_break_13_handler): Pass lseek
|
||||
offset parameter as sign-extended.
|
||||
|
||||
2010-05-26 Ozkan Sezer <sezeroz@gmail.com>
|
||||
|
||||
* dv-rv.c (hw_rv_init_socket): Check error return from socket() call
|
||||
|
|
|
@ -1478,6 +1478,14 @@ cris_break_13_handler (SIM_CPU *current_cpu, USI callnum, USI arg1,
|
|||
s.arg2 = arg2;
|
||||
s.arg3 = arg3;
|
||||
|
||||
/* The type of s.arg2 is long, so for hosts with 64-bit longs, we need
|
||||
to sign-extend the lseek offset to be passed as a signed number,
|
||||
else we'll truncate it to something > 2GB on hosts where sizeof
|
||||
long > sizeof USI. We avoid doing it for all syscalls, as arg2 is
|
||||
e.g. an address for some syscalls. */
|
||||
if (callnum == TARGET_SYS_lseek)
|
||||
s.arg2 = (SI) arg2;
|
||||
|
||||
if (callnum == TARGET_SYS_exit_group
|
||||
|| (callnum == TARGET_SYS_exit && current_cpu->m1threads == 0))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue