OSDN Git Service

translate-all: honour CF_NOCACHE in tb_gen_code
authorEmilio G. Cota <cota@braap.org>
Thu, 5 Jul 2018 16:07:17 +0000 (12:07 -0400)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 9 Jul 2018 15:14:36 +0000 (16:14 +0100)
commitec7eb2ae77cc207064e17ace048f7ec0c4b85d6f
treead3b328853c61619b35bdabf21721156ac41377b
parent6d1d4276aea9773af97fed651cb205aab4f1b163
translate-all: honour CF_NOCACHE in tb_gen_code

This fixes a record-replay regression introduced by 95590e2
("translate-all: discard TB when tb_link_page returns an existing
matching TB", 2018-06-15). The problem is that code using CF_NOCACHE
assumes that the TB returned from tb_gen_code is always a
newly-generated one. This assumption, however, was broken in
the aforementioned commit.

Fix it by honouring CF_NOCACHE, so that tb_gen_code always
returns a newly-generated TB when CF_NOCACHE is passed to it.
Do this by avoiding the TB hash table if CF_NOCACHE is set.

Reported-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Tested-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Signed-off-by: Emilio G. Cota <cota@braap.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 1530806837-5416-1-git-send-email-cota@braap.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
accel/tcg/translate-all.c