aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-02-25 05:12:06 +0000
committerRichard Henderson <richard.henderson@linaro.org>2021-03-06 11:45:21 -0800
commit707b45a2475e25709f0dee00f8fdf39d346ed21e (patch)
tree6390cea032916f65a18ebd29202ee9bb445c45e2 /.cirrus.yml
parent91e92cad67caca3bc4b8e920ddb5c8ca64aac9e1 (diff)
tcg/aarch64: Fix constant subtraction in tcg_out_addsub2
An hppa guest executing 0x000000000000e05c: ldil L%10000,r4 0x000000000000e060: ldo 0(r4),r4 0x000000000000e064: sub r3,r4,sp produces ---- 000000000000e064 000000000000e068 sub2_i32 tmp0,tmp4,r3,$0x1,$0x10000,$0x0 after folding and constant propagation. Then we hit tcg-target.c.inc:640: tcg_out_insn_3401: Assertion `aimm <= 0xfff' failed. because aimm is in fact -16, but unsigned. The ((bl < 0) ^ sub) condition which negates bl is incorrect and will always lead to this abort. If the constant is positive, sub will make it negative; if the constant is negative, sub will keep it negative. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to '.cirrus.yml')
0 files changed, 0 insertions, 0 deletions