Revision 0b6d3ae0
b/configure | ||
---|---|---|
1437 | 1437 |
echo "#define TARGET_ARCH \"sh4\"" >> $config_h |
1438 | 1438 |
echo "#define TARGET_SH4 1" >> $config_h |
1439 | 1439 |
bflt="yes" |
1440 |
target_nptl="yes" |
|
1440 | 1441 |
;; |
1441 | 1442 |
sparc) |
1442 | 1443 |
echo "TARGET_ARCH=sparc" >> $config_mak |
b/linux-user/main.c | ||
---|---|---|
1887 | 1887 |
|
1888 | 1888 |
switch (trapnr) { |
1889 | 1889 |
case 0x160: |
1890 |
env->pc += 2; |
|
1890 | 1891 |
ret = do_syscall(env, |
1891 | 1892 |
env->gregs[3], |
1892 | 1893 |
env->gregs[4], |
... | ... | |
1896 | 1897 |
env->gregs[0], |
1897 | 1898 |
env->gregs[1]); |
1898 | 1899 |
env->gregs[0] = ret; |
1899 |
env->pc += 2; |
|
1900 | 1900 |
break; |
1901 | 1901 |
case EXCP_INTERRUPT: |
1902 | 1902 |
/* just indicate that signals should be handled asap */ |
b/linux-user/syscall.c | ||
---|---|---|
53 | 53 |
//#include <sys/user.h> |
54 | 54 |
#include <netinet/ip.h> |
55 | 55 |
#include <netinet/tcp.h> |
56 |
#include <qemu-common.h> |
|
56 | 57 |
|
57 | 58 |
#define termios host_termios |
58 | 59 |
#define winsize host_winsize |
... | ... | |
4662 | 4663 |
ret = get_errno(fsync(arg1)); |
4663 | 4664 |
break; |
4664 | 4665 |
case TARGET_NR_clone: |
4666 |
#if defined(TARGET_SH4) |
|
4667 |
ret = get_errno(do_fork(cpu_env, arg1, arg2, arg3, arg5, arg4)); |
|
4668 |
#else |
|
4665 | 4669 |
ret = get_errno(do_fork(cpu_env, arg1, arg2, arg3, arg4, arg5)); |
4670 |
#endif |
|
4666 | 4671 |
break; |
4667 | 4672 |
#ifdef __NR_exit_group |
4668 | 4673 |
/* new thread calls */ |
b/target-sh4/cpu.h | ||
---|---|---|
141 | 141 |
void cpu_sh4_write_mmaped_utlb_addr(CPUSH4State *s, target_phys_addr_t addr, |
142 | 142 |
uint32_t mem_value); |
143 | 143 |
|
144 |
static inline void cpu_set_tls(CPUSH4State *env, target_ulong newtls) |
|
145 |
{ |
|
146 |
env->gbr = newtls; |
|
147 |
} |
|
148 |
|
|
144 | 149 |
#include "softfloat.h" |
145 | 150 |
|
146 | 151 |
#define CPUState CPUSH4State |
Also available in: Unified diff