Fix some cputlb commentary
Fix an hppa temporary leak Fix an i386 translation issue with loop insns -----BEGIN PGP SIGNATURE----- iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAl8cV+8dHHJpY2hhcmQu aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV9DpAf/ZBA/GOE+O5pGXtuR 6zc2TG/1SILJWRtkQ1e6OSvpoCEw6XoTMWA3vp6GF6wCaeBRFOcbYfABFvQJSP4M aFEVdfQqWk67WGqyPuvJKScC4jPZpfw5xB29DRQta2XYF2wdtdDf4rjlz/SK5Np7 xzCtZrRV4RnQAFmupMSKhgWWmDDTn2pNBBUpDkiXMX7L/qgHA43OFW0Bm6ncBl3L IramXEZrwHD+hMtjQXAVBgULOR3DS6xJVgzRRl2ecCTYkwWLxjFEpTAdqaXFORpO AbvietkpeUOoo+K0qV+kQGWu5Q4rZq7ScHOIqLd4j2nrdlKZiE02rSW+MYVCR43R 8EC2/g== =b+tT -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20200725' into staging Fix some cputlb commentary Fix an hppa temporary leak Fix an i386 translation issue with loop insns # gpg: Signature made Sat 25 Jul 2020 17:03:59 BST # gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F # gpg: issuer "richard.henderson@linaro.org" # gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [full] # Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F * remotes/rth/tags/pull-tcg-20200725: target/i386: Save cc_op before loop insns target/hppa: Free some temps in do_sub tcg: update comments for save_iotlb_data in cputlb Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
194f8ca825
@ -1075,10 +1075,8 @@ static uint64_t io_readx(CPUArchState *env, CPUIOTLBEntry *iotlbentry,
|
||||
|
||||
/*
|
||||
* Save a potentially trashed IOTLB entry for later lookup by plugin.
|
||||
*
|
||||
* We also need to track the thread storage address because the RCU
|
||||
* cleanup that runs when we leave the critical region (the current
|
||||
* execution) is actually in a different thread.
|
||||
* This is read by tlb_plugin_lookup if the iotlb entry doesn't match
|
||||
* because of the side effect of io_writex changing memory layout.
|
||||
*/
|
||||
static void save_iotlb_data(CPUState *cs, hwaddr addr,
|
||||
MemoryRegionSection *section, hwaddr mr_offset)
|
||||
@ -1408,8 +1406,9 @@ void *tlb_vaddr_to_host(CPUArchState *env, abi_ptr addr,
|
||||
* This almost never fails as the memory access being instrumented
|
||||
* should have just filled the TLB. The one corner case is io_writex
|
||||
* which can cause TLB flushes and potential resizing of the TLBs
|
||||
* loosing the information we need. In those cases we need to recover
|
||||
* data from a copy of the io_tlb entry.
|
||||
* losing the information we need. In those cases we need to recover
|
||||
* data from a copy of the iotlbentry. As long as this always occurs
|
||||
* from the same thread (which a mem callback will be) this is safe.
|
||||
*/
|
||||
|
||||
bool tlb_plugin_lookup(CPUState *cpu, target_ulong addr, int mmu_idx,
|
||||
|
@ -1294,6 +1294,8 @@ static void do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1,
|
||||
save_or_nullify(ctx, cpu_psw_cb_msb, cb_msb);
|
||||
save_gpr(ctx, rt, dest);
|
||||
tcg_temp_free(dest);
|
||||
tcg_temp_free(cb);
|
||||
tcg_temp_free(cb_msb);
|
||||
|
||||
/* Install the new nullification. */
|
||||
cond_free(&ctx->null_cond);
|
||||
|
@ -7148,6 +7148,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
|
||||
l1 = gen_new_label();
|
||||
l2 = gen_new_label();
|
||||
l3 = gen_new_label();
|
||||
gen_update_cc_op(s);
|
||||
b &= 3;
|
||||
switch(b) {
|
||||
case 0: /* loopnz */
|
||||
|
Loading…
Reference in New Issue
Block a user