Skip to content

Commit 0ce0739

Browse files
keith-packardpm215
authored andcommitted
target/rx: Remove TCG_CALL_NO_WG from helpers which write env
Functions which modify TCG globals must not be marked TCG_CALL_NO_WG, as that tells the optimizer that TCG global values already loaded in machine registers are still valid, and so any changes which these helpers make to the CPU state may be ignored. The target/rx code chooses to put (among other things) all the PSW bits and also ACC into globals, so the NO_WG flag on various functions that touch the PSW or ACC is incorrect and must be removed. This includes all the floating point helper functions, because update_fpsw() will update PSW Z and S. Signed-off-by: Keith Packard <[email protected]> [PMM: Clarified commit message] Reviewed-by: Peter Maydell <[email protected]> Signed-off-by: Peter Maydell <[email protected]>
1 parent 7610317 commit 0ce0739

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

target/rx/helper.h

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,27 @@ DEF_HELPER_1(raise_privilege_violation, noreturn, env)
44
DEF_HELPER_1(wait, noreturn, env)
55
DEF_HELPER_2(rxint, noreturn, env, i32)
66
DEF_HELPER_1(rxbrk, noreturn, env)
7-
DEF_HELPER_FLAGS_3(fadd, TCG_CALL_NO_WG, f32, env, f32, f32)
8-
DEF_HELPER_FLAGS_3(fsub, TCG_CALL_NO_WG, f32, env, f32, f32)
9-
DEF_HELPER_FLAGS_3(fmul, TCG_CALL_NO_WG, f32, env, f32, f32)
10-
DEF_HELPER_FLAGS_3(fdiv, TCG_CALL_NO_WG, f32, env, f32, f32)
11-
DEF_HELPER_FLAGS_3(fcmp, TCG_CALL_NO_WG, void, env, f32, f32)
12-
DEF_HELPER_FLAGS_2(ftoi, TCG_CALL_NO_WG, i32, env, f32)
13-
DEF_HELPER_FLAGS_2(round, TCG_CALL_NO_WG, i32, env, f32)
14-
DEF_HELPER_FLAGS_2(itof, TCG_CALL_NO_WG, f32, env, i32)
7+
DEF_HELPER_3(fadd, f32, env, f32, f32)
8+
DEF_HELPER_3(fsub, f32, env, f32, f32)
9+
DEF_HELPER_3(fmul, f32, env, f32, f32)
10+
DEF_HELPER_3(fdiv, f32, env, f32, f32)
11+
DEF_HELPER_3(fcmp, void, env, f32, f32)
12+
DEF_HELPER_2(ftoi, i32, env, f32)
13+
DEF_HELPER_2(round, i32, env, f32)
14+
DEF_HELPER_2(itof, f32, env, i32)
1515
DEF_HELPER_2(set_fpsw, void, env, i32)
16-
DEF_HELPER_FLAGS_2(racw, TCG_CALL_NO_WG, void, env, i32)
17-
DEF_HELPER_FLAGS_2(set_psw_rte, TCG_CALL_NO_WG, void, env, i32)
18-
DEF_HELPER_FLAGS_2(set_psw, TCG_CALL_NO_WG, void, env, i32)
16+
DEF_HELPER_2(racw, void, env, i32)
17+
DEF_HELPER_2(set_psw_rte, void, env, i32)
18+
DEF_HELPER_2(set_psw, void, env, i32)
1919
DEF_HELPER_1(pack_psw, i32, env)
20-
DEF_HELPER_FLAGS_3(div, TCG_CALL_NO_WG, i32, env, i32, i32)
21-
DEF_HELPER_FLAGS_3(divu, TCG_CALL_NO_WG, i32, env, i32, i32)
22-
DEF_HELPER_FLAGS_1(scmpu, TCG_CALL_NO_WG, void, env)
20+
DEF_HELPER_3(div, i32, env, i32, i32)
21+
DEF_HELPER_3(divu, i32, env, i32, i32)
22+
DEF_HELPER_1(scmpu, void, env)
2323
DEF_HELPER_1(smovu, void, env)
2424
DEF_HELPER_1(smovf, void, env)
2525
DEF_HELPER_1(smovb, void, env)
2626
DEF_HELPER_2(sstr, void, env, i32)
27-
DEF_HELPER_FLAGS_2(swhile, TCG_CALL_NO_WG, void, env, i32)
28-
DEF_HELPER_FLAGS_2(suntil, TCG_CALL_NO_WG, void, env, i32)
29-
DEF_HELPER_FLAGS_2(rmpa, TCG_CALL_NO_WG, void, env, i32)
27+
DEF_HELPER_2(swhile, void, env, i32)
28+
DEF_HELPER_2(suntil, void, env, i32)
29+
DEF_HELPER_2(rmpa, void, env, i32)
3030
DEF_HELPER_1(satr, void, env)

0 commit comments

Comments
 (0)