diff backend_x86.c @ 2268:5b308c7b098c

Avoid code mem allocation bomb when a div instruction gets rewritten
author Michael Pavone <pavone@retrodev.com>
date Sun, 25 Dec 2022 18:16:44 -0800
parents f82c090c1e89
children 6677afe78a6f
line wrap: on
line diff
--- a/backend_x86.c	Sat Dec 24 20:23:05 2022 -0800
+++ b/backend_x86.c	Sun Dec 25 18:16:44 2022 -0800
@@ -81,11 +81,11 @@
 		cmp_rr(code, opts->cycles, opts->limit, SZ_D);
 		cc = CC_A;
 	}
-	check_alloc_code(code, MAX_INST_LEN*2);
+ALLOC_CODE_RETRY_POINT
 	code_ptr jmp_off = code->cur+1;
 	jcc(code, cc, jmp_off+1);
 	call(code, opts->handle_cycle_limit);
-	*jmp_off = code->cur - (jmp_off+1);
+	CHECK_BRANCH_DEST(jmp_off);
 }
 
 void log_address(cpu_options *opts, uint32_t address, char * format)