Skip to content

Commit

Permalink
ia64 fixes
Browse files Browse the repository at this point in the history
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1846 c046a42c-6fe2-441c-8c8c-71466251a162
  • Loading branch information
bellard committed Apr 24, 2006
1 parent ad1a5b7 commit fd4a43e
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 40 deletions.
3 changes: 0 additions & 3 deletions Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -252,9 +252,6 @@ ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k)
LIBOBJS+=m68k-dis.o
endif

ifeq ($(ARCH),ia64)
OBJS += ia64-syscall.o
endif
ifdef CONFIG_GDBSTUB
OBJS+=gdbstub.o
endif
Expand Down
3 changes: 1 addition & 2 deletions cpu-exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1363,7 +1363,6 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
#ifndef __ISR_VALID
/* This ought to be in <bits/siginfo.h>... */
# define __ISR_VALID 1
# define si_flags _sifields._sigfault._si_pad0
#endif

int cpu_signal_handler(int host_signum, struct siginfo *info, void *puc)
Expand All @@ -1379,7 +1378,7 @@ int cpu_signal_handler(int host_signum, struct siginfo *info, void *puc)
case SIGSEGV:
case SIGBUS:
case SIGTRAP:
if (info->si_code && (info->si_flags & __ISR_VALID))
if (info->si_code && (info->si_segvflags & __ISR_VALID))
/* ISR.W (write-access) is bit 33: */
is_write = (info->si_isr >> 33) & 1;
break;
Expand Down
6 changes: 4 additions & 2 deletions dyngen.c
Original file line number Diff line number Diff line change
Expand Up @@ -2475,10 +2475,12 @@ fprintf(outfile,
);
#ifdef HOST_IA64
fprintf(outfile,
" ia64_apply_fixes(&gen_code_ptr, ltoff_fixes, "
" {\n"
" extern char code_gen_buffer[];\n"
" ia64_apply_fixes(&gen_code_ptr, ltoff_fixes, "
"(uint64_t) code_gen_buffer + 2*(1<<20), plt_fixes,\n\t\t\t"
"sizeof(plt_target)/sizeof(plt_target[0]),\n\t\t\t"
"plt_target, plt_offset);\n");
"plt_target, plt_offset);\n }\n");
#endif

/* generate some code patching */
Expand Down
3 changes: 3 additions & 0 deletions dyngen.h
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,9 @@ static inline void ia64_apply_fixes (uint8_t **gen_code_pp,
}
ia64_imm22(fixup->addr, (long) vp - gp);
}
/* Keep code ptr aligned. */
if ((long) gen_code_ptr & 15)
gen_code_ptr += 8;
*gen_code_pp = gen_code_ptr;
}

Expand Down
32 changes: 0 additions & 32 deletions ia64-syscall.S

This file was deleted.

2 changes: 1 addition & 1 deletion linux-user/syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -1623,7 +1623,7 @@ int do_fork(CPUState *env, unsigned int flags, unsigned long newsp)
#endif
new_env->opaque = ts;
#ifdef __ia64__
ret = clone2(clone_func, new_stack + NEW_STACK_SIZE, flags, new_env);
ret = __clone2(clone_func, new_stack + NEW_STACK_SIZE, flags, new_env);
#else
ret = clone(clone_func, new_stack + NEW_STACK_SIZE, flags, new_env);
#endif
Expand Down

0 comments on commit fd4a43e

Please sign in to comment.