On 8/30/20 1:23 PM, Taylor Simpson wrote: >> I think the merge stuff is a mistake. I think you can get the semantics that >> you want with >> >> probe_read(ld_addr, ld_len) >> qemu_st(st_value, st_addr) >> qemu_ld(ld_value, ld_addr) >> >> In this way, all exceptions are recognized before the store is complete, the >> normal memory operations handle any possible overlap. > > So, do this inside the helper? Or is there a way to generate TCG code?
I was thinking TCG code, where you can look at the packet before any code gen, and decide whether or not this situation actually applies. The probe is a simple helper call, for which the generic machinery exists (probe_access, probe_write, probe_read). All you have to do is write the wrapper. The loads and stores are, well, normal loads and stores. r~