diff --git a/Makefile b/Makefile index 1db299e8c3..ab8e377f55 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,8 @@ CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6 LDFLAGS+=-m32 OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0 HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat -LDFLAGS+=-Wl,-T,sparc.ld +# -static is used to avoid g1/g3 usage by the dynamic linker +LDFLAGS+=-Wl,-T,sparc.ld -static endif ifeq ($(ARCH),sparc64) diff --git a/dyngen-exec.h b/dyngen-exec.h index e5b5e5fde8..46f4042f68 100644 --- a/dyngen-exec.h +++ b/dyngen-exec.h @@ -172,7 +172,7 @@ extern int __op_jmp0, __op_jmp1; #define EXIT_TB() asm volatile ("br.ret.sptk.many b0;;") #endif #ifdef __sparc__ -#define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n" +#define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n" \ "nop") #endif #ifdef __arm__