aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpcsxcore/new_dynarec/assem_arm.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c
index 6d0a40d..4af1566 100644
--- a/libpcsxcore/new_dynarec/assem_arm.c
+++ b/libpcsxcore/new_dynarec/assem_arm.c
@@ -826,7 +826,13 @@ u_int genimm(u_int imm,u_int *encoded)
u_int genjmp(u_int addr)
{
int offset=addr-(int)out-8;
- if(offset<-33554432||offset>=33554432) return 0;
+ if(offset<-33554432||offset>=33554432) {
+ if (addr>2) {
+ printf("genjmp: out of range: %08x\n", offset);
+ exit(1);
+ }
+ return 0;
+ }
return ((u_int)offset>>2)&0xffffff;
}