Mercurial > repos > blastem
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; |