Commit a96fc003bd347fc85d0eff0e9bf5839e73385c7b
1 parent
d44b29c2
sparc fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@325 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
3 additions
and
2 deletions
Makefile
| @@ -47,7 +47,8 @@ CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6 | @@ -47,7 +47,8 @@ CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6 | ||
| 47 | LDFLAGS+=-m32 | 47 | LDFLAGS+=-m32 |
| 48 | OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0 | 48 | OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0 |
| 49 | HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat | 49 | HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat |
| 50 | -LDFLAGS+=-Wl,-T,sparc.ld | 50 | +# -static is used to avoid g1/g3 usage by the dynamic linker |
| 51 | +LDFLAGS+=-Wl,-T,sparc.ld -static | ||
| 51 | endif | 52 | endif |
| 52 | 53 | ||
| 53 | ifeq ($(ARCH),sparc64) | 54 | ifeq ($(ARCH),sparc64) |
dyngen-exec.h
| @@ -172,7 +172,7 @@ extern int __op_jmp0, __op_jmp1; | @@ -172,7 +172,7 @@ extern int __op_jmp0, __op_jmp1; | ||
| 172 | #define EXIT_TB() asm volatile ("br.ret.sptk.many b0;;") | 172 | #define EXIT_TB() asm volatile ("br.ret.sptk.many b0;;") |
| 173 | #endif | 173 | #endif |
| 174 | #ifdef __sparc__ | 174 | #ifdef __sparc__ |
| 175 | -#define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n" | 175 | +#define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n" \ |
| 176 | "nop") | 176 | "nop") |
| 177 | #endif | 177 | #endif |
| 178 | #ifdef __arm__ | 178 | #ifdef __arm__ |