comparison 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
comparison
equal deleted inserted replaced
2267:94cca8b8429e 2268:5b308c7b098c
79 cc = CC_NS; 79 cc = CC_NS;
80 } else { 80 } else {
81 cmp_rr(code, opts->cycles, opts->limit, SZ_D); 81 cmp_rr(code, opts->cycles, opts->limit, SZ_D);
82 cc = CC_A; 82 cc = CC_A;
83 } 83 }
84 check_alloc_code(code, MAX_INST_LEN*2); 84 ALLOC_CODE_RETRY_POINT
85 code_ptr jmp_off = code->cur+1; 85 code_ptr jmp_off = code->cur+1;
86 jcc(code, cc, jmp_off+1); 86 jcc(code, cc, jmp_off+1);
87 call(code, opts->handle_cycle_limit); 87 call(code, opts->handle_cycle_limit);
88 *jmp_off = code->cur - (jmp_off+1); 88 CHECK_BRANCH_DEST(jmp_off);
89 } 89 }
90 90
91 void log_address(cpu_options *opts, uint32_t address, char * format) 91 void log_address(cpu_options *opts, uint32_t address, char * format)
92 { 92 {
93 code_info *code = &opts->code; 93 code_info *code = &opts->code;