comparison backend_x86.c @ 2400:c97609fe8315

Implement watchpoints in Z80 debugger
author Michael Pavone <pavone@retrodev.com>
date Sat, 23 Dec 2023 23:03:31 -0800
parents bf4f1a8d1d48
children
comparison
equal deleted inserted replaced
2399:68eba54b60f7 2400:c97609fe8315
136 cmp_rdispr(code, opts->context_reg, opts->watchpoint_range_off, adr_reg, opts->address_size); 136 cmp_rdispr(code, opts->context_reg, opts->watchpoint_range_off, adr_reg, opts->address_size);
137 code_ptr watch_lb = code->cur + 1; 137 code_ptr watch_lb = code->cur + 1;
138 jcc(code, CC_C, code->cur + 2); 138 jcc(code, CC_C, code->cur + 2);
139 cmp_rdispr(code, opts->context_reg, opts->watchpoint_range_off + (opts->address_size == SZ_D ? 4 : 2), adr_reg, opts->address_size); 139 cmp_rdispr(code, opts->context_reg, opts->watchpoint_range_off + (opts->address_size == SZ_D ? 4 : 2), adr_reg, opts->address_size);
140 code_ptr watch_ub = code->cur + 1; 140 code_ptr watch_ub = code->cur + 1;
141 jcc(code, CC_NC, code->cur + 2); 141 jcc(code, CC_A, code->cur + 2);
142 142
143 push_r(code, opts->scratch1); 143 push_r(code, opts->scratch1);
144 push_r(code, opts->scratch2); 144 push_r(code, opts->scratch2);
145 call(code, opts->save_context); 145 call(code, opts->save_context);
146 call_args_abi(code, check_watchpoints, 3, opts->scratch2, opts->context_reg, opts->scratch1); 146 call_args_abi(code, check_watchpoints, 3, opts->scratch2, opts->context_reg, opts->scratch1);