Message ID | 20210514151342.384376-51-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/i386 translate cleanups | expand |
On 14/05/21 17:13, Richard Henderson wrote: > With the previous patch for check_io, we now have enough for > the compiler to dead-code eliminate all of the i/o helpers. > > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> > --- > target/i386/helper.h | 3 +- > target/i386/tcg/translate.c | 6 ++++ > target/i386/tcg/user/misc_stubs.c | 55 ------------------------------- > target/i386/tcg/user/meson.build | 1 - > 4 files changed, 7 insertions(+), 58 deletions(-) > delete mode 100644 target/i386/tcg/user/misc_stubs.c > > diff --git a/target/i386/helper.h b/target/i386/helper.h > index 3fd0253298..f3d8c3f949 100644 > --- a/target/i386/helper.h > +++ b/target/i386/helper.h > @@ -86,14 +86,13 @@ DEF_HELPER_1(rdtsc, void, env) > DEF_HELPER_1(rdtscp, void, env) > DEF_HELPER_FLAGS_1(rdpmc, TCG_CALL_NO_WG, noreturn, env) > > +#ifndef CONFIG_USER_ONLY > DEF_HELPER_3(outb, void, env, i32, i32) > DEF_HELPER_2(inb, tl, env, i32) > DEF_HELPER_3(outw, void, env, i32, i32) > DEF_HELPER_2(inw, tl, env, i32) > DEF_HELPER_3(outl, void, env, i32, i32) > DEF_HELPER_2(inl, tl, env, i32) > - > -#ifndef CONFIG_USER_ONLY > DEF_HELPER_FLAGS_3(check_io, TCG_CALL_NO_WG, void, env, i32, i32) > DEF_HELPER_FLAGS_4(bpt_io, TCG_CALL_NO_WG, void, env, i32, i32, tl) > DEF_HELPER_2(svm_check_intercept, void, env, i32) > diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c > index bcc642bf6e..08ff3fe232 100644 > --- a/target/i386/tcg/translate.c > +++ b/target/i386/tcg/translate.c > @@ -197,8 +197,14 @@ STUB_HELPER(check_io, TCGv_env env, TCGv_i32 port, TCGv_i32 size) > STUB_HELPER(clgi, TCGv_env env) > STUB_HELPER(flush_page, TCGv_env env, TCGv addr) > STUB_HELPER(hlt, TCGv_env env, TCGv_i32 pc_ofs) > +STUB_HELPER(inb, TCGv ret, TCGv_env env, TCGv_i32 port) > +STUB_HELPER(inw, TCGv ret, TCGv_env env, TCGv_i32 port) > +STUB_HELPER(inl, TCGv ret, TCGv_env env, TCGv_i32 port) > STUB_HELPER(monitor, TCGv_env env, TCGv addr) > STUB_HELPER(mwait, TCGv_env env, TCGv_i32 pc_ofs) > +STUB_HELPER(outb, TCGv_env env, TCGv_i32 port, TCGv_i32 val) > +STUB_HELPER(outw, TCGv_env env, TCGv_i32 port, TCGv_i32 val) > +STUB_HELPER(outl, TCGv_env env, TCGv_i32 port, TCGv_i32 val) > STUB_HELPER(rdmsr, TCGv_env env) > STUB_HELPER(read_crN, TCGv ret, TCGv_env env, TCGv_i32 reg) > STUB_HELPER(set_dr, TCGv_env env, TCGv_i32 reg, TCGv val) > diff --git a/target/i386/tcg/user/misc_stubs.c b/target/i386/tcg/user/misc_stubs.c > deleted file mode 100644 > index df38b44d6e..0000000000 > --- a/target/i386/tcg/user/misc_stubs.c > +++ /dev/null > @@ -1,55 +0,0 @@ > -/* > - * x86 misc helpers > - * > - * Copyright (c) 2003 Fabrice Bellard > - * > - * This library is free software; you can redistribute it and/or > - * modify it under the terms of the GNU Lesser General Public > - * License as published by the Free Software Foundation; either > - * version 2.1 of the License, or (at your option) any later version. > - * > - * This library is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > - * Lesser General Public License for more details. > - * > - * You should have received a copy of the GNU Lesser General Public > - * License along with this library; if not, see <http://www.gnu.org/licenses/>. > - */ > - > -#include "qemu/osdep.h" > -#include "cpu.h" > -#include "exec/helper-proto.h" > - > -void helper_outb(CPUX86State *env, uint32_t port, uint32_t data) > -{ > - g_assert_not_reached(); > -} > - > -target_ulong helper_inb(CPUX86State *env, uint32_t port) > -{ > - g_assert_not_reached(); > - return 0; > -} > - > -void helper_outw(CPUX86State *env, uint32_t port, uint32_t data) > -{ > - g_assert_not_reached(); > -} > - > -target_ulong helper_inw(CPUX86State *env, uint32_t port) > -{ > - g_assert_not_reached(); > - return 0; > -} > - > -void helper_outl(CPUX86State *env, uint32_t port, uint32_t data) > -{ > - g_assert_not_reached(); > -} > - > -target_ulong helper_inl(CPUX86State *env, uint32_t port) > -{ > - g_assert_not_reached(); > - return 0; > -} > diff --git a/target/i386/tcg/user/meson.build b/target/i386/tcg/user/meson.build > index 3555b15bdd..1df6bc4343 100644 > --- a/target/i386/tcg/user/meson.build > +++ b/target/i386/tcg/user/meson.build > @@ -1,5 +1,4 @@ > i386_user_ss.add(when: ['CONFIG_TCG', 'CONFIG_USER_ONLY'], if_true: files( > 'excp_helper.c', > - 'misc_stubs.c', > 'seg_helper.c', > )) >
diff --git a/target/i386/helper.h b/target/i386/helper.h index 3fd0253298..f3d8c3f949 100644 --- a/target/i386/helper.h +++ b/target/i386/helper.h @@ -86,14 +86,13 @@ DEF_HELPER_1(rdtsc, void, env) DEF_HELPER_1(rdtscp, void, env) DEF_HELPER_FLAGS_1(rdpmc, TCG_CALL_NO_WG, noreturn, env) +#ifndef CONFIG_USER_ONLY DEF_HELPER_3(outb, void, env, i32, i32) DEF_HELPER_2(inb, tl, env, i32) DEF_HELPER_3(outw, void, env, i32, i32) DEF_HELPER_2(inw, tl, env, i32) DEF_HELPER_3(outl, void, env, i32, i32) DEF_HELPER_2(inl, tl, env, i32) - -#ifndef CONFIG_USER_ONLY DEF_HELPER_FLAGS_3(check_io, TCG_CALL_NO_WG, void, env, i32, i32) DEF_HELPER_FLAGS_4(bpt_io, TCG_CALL_NO_WG, void, env, i32, i32, tl) DEF_HELPER_2(svm_check_intercept, void, env, i32) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index bcc642bf6e..08ff3fe232 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -197,8 +197,14 @@ STUB_HELPER(check_io, TCGv_env env, TCGv_i32 port, TCGv_i32 size) STUB_HELPER(clgi, TCGv_env env) STUB_HELPER(flush_page, TCGv_env env, TCGv addr) STUB_HELPER(hlt, TCGv_env env, TCGv_i32 pc_ofs) +STUB_HELPER(inb, TCGv ret, TCGv_env env, TCGv_i32 port) +STUB_HELPER(inw, TCGv ret, TCGv_env env, TCGv_i32 port) +STUB_HELPER(inl, TCGv ret, TCGv_env env, TCGv_i32 port) STUB_HELPER(monitor, TCGv_env env, TCGv addr) STUB_HELPER(mwait, TCGv_env env, TCGv_i32 pc_ofs) +STUB_HELPER(outb, TCGv_env env, TCGv_i32 port, TCGv_i32 val) +STUB_HELPER(outw, TCGv_env env, TCGv_i32 port, TCGv_i32 val) +STUB_HELPER(outl, TCGv_env env, TCGv_i32 port, TCGv_i32 val) STUB_HELPER(rdmsr, TCGv_env env) STUB_HELPER(read_crN, TCGv ret, TCGv_env env, TCGv_i32 reg) STUB_HELPER(set_dr, TCGv_env env, TCGv_i32 reg, TCGv val) diff --git a/target/i386/tcg/user/misc_stubs.c b/target/i386/tcg/user/misc_stubs.c deleted file mode 100644 index df38b44d6e..0000000000 --- a/target/i386/tcg/user/misc_stubs.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * x86 misc helpers - * - * Copyright (c) 2003 Fabrice Bellard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, see <http://www.gnu.org/licenses/>. - */ - -#include "qemu/osdep.h" -#include "cpu.h" -#include "exec/helper-proto.h" - -void helper_outb(CPUX86State *env, uint32_t port, uint32_t data) -{ - g_assert_not_reached(); -} - -target_ulong helper_inb(CPUX86State *env, uint32_t port) -{ - g_assert_not_reached(); - return 0; -} - -void helper_outw(CPUX86State *env, uint32_t port, uint32_t data) -{ - g_assert_not_reached(); -} - -target_ulong helper_inw(CPUX86State *env, uint32_t port) -{ - g_assert_not_reached(); - return 0; -} - -void helper_outl(CPUX86State *env, uint32_t port, uint32_t data) -{ - g_assert_not_reached(); -} - -target_ulong helper_inl(CPUX86State *env, uint32_t port) -{ - g_assert_not_reached(); - return 0; -} diff --git a/target/i386/tcg/user/meson.build b/target/i386/tcg/user/meson.build index 3555b15bdd..1df6bc4343 100644 --- a/target/i386/tcg/user/meson.build +++ b/target/i386/tcg/user/meson.build @@ -1,5 +1,4 @@ i386_user_ss.add(when: ['CONFIG_TCG', 'CONFIG_USER_ONLY'], if_true: files( 'excp_helper.c', - 'misc_stubs.c', 'seg_helper.c', ))