From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Li8NR-0000MU-KT for qemu-devel@nongnu.org; Fri, 13 Mar 2009 10:28:45 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Li8NM-0000Le-WD for qemu-devel@nongnu.org; Fri, 13 Mar 2009 10:28:45 -0400 Received: from [199.232.76.173] (port=45941 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Li8NM-0000LZ-PT for qemu-devel@nongnu.org; Fri, 13 Mar 2009 10:28:40 -0400 Received: from mel.act-europe.fr ([212.99.106.210]:41057) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Li8NM-0003IT-9Q for qemu-devel@nongnu.org; Fri, 13 Mar 2009 10:28:40 -0400 From: Tristan Gingold Date: Fri, 13 Mar 2009 15:20:38 +0100 Message-Id: <1236954043-91856-20-git-send-email-gingold@adacore.com> In-Reply-To: <1236954043-91856-19-git-send-email-gingold@adacore.com> References: <1236954043-91856-1-git-send-email-gingold@adacore.com> <1236954043-91856-2-git-send-email-gingold@adacore.com> <1236954043-91856-3-git-send-email-gingold@adacore.com> <1236954043-91856-4-git-send-email-gingold@adacore.com> <1236954043-91856-5-git-send-email-gingold@adacore.com> <1236954043-91856-6-git-send-email-gingold@adacore.com> <1236954043-91856-7-git-send-email-gingold@adacore.com> <1236954043-91856-8-git-send-email-gingold@adacore.com> <1236954043-91856-9-git-send-email-gingold@adacore.com> <1236954043-91856-10-git-send-email-gingold@adacore.com> <1236954043-91856-11-git-send-email-gingold@adacore.com> <1236954043-91856-12-git-send-email-gingold@adacore.com> <1236954043-91856-13-git-send-email-gingold@adacore.com> <1236954043-91856-14-git-send-email-gingold@adacore.com> <1236954043-91856-15-git-send-email-gingold@adacore.com> <1236954043-91856-16-git-send-email-gingold@adacore.com> <1236954043-91856-17-git-send-email-gingold@adacore.com> <1236954043-91856-18-git-send-email-gingold@adacore.com> <1236954043-91856-19-git-send-email-gingold@adacore.com> Subject: [Qemu-devel] [PATCH 19/24] alpha ld helpers now directly return the value. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Tristan Gingold Remove _kernel helpers as they can be directly generated. Replace ld/st_raw with _phys (bug fix). Signed-off-by: Tristan Gingold --- target-alpha/helper.h | 14 +++++------- target-alpha/op_helper.c | 50 ++++++++++++++++++++------------------------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/target-alpha/helper.h b/target-alpha/helper.h index 4c4855d..4c37851 100644 --- a/target-alpha/helper.h +++ b/target-alpha/helper.h @@ -116,14 +116,12 @@ DEF_HELPER_0(restore_mode, void) DEF_HELPER_1(ld_virt_to_phys, i64, i64) DEF_HELPER_1(st_virt_to_phys, i64, i64) -DEF_HELPER_2(ldl_raw, void, i64, i64) -DEF_HELPER_2(ldq_raw, void, i64, i64) -DEF_HELPER_2(ldl_l_raw, void, i64, i64) -DEF_HELPER_2(ldq_l_raw, void, i64, i64) -DEF_HELPER_2(ldl_kernel, void, i64, i64) -DEF_HELPER_2(ldq_kernel, void, i64, i64) -DEF_HELPER_2(ldl_data, void, i64, i64) -DEF_HELPER_2(ldq_data, void, i64, i64) +DEF_HELPER_1(ldl_raw, i32, i64) +DEF_HELPER_1(ldq_raw, i64, i64) +DEF_HELPER_1(ldl_l_raw, i32, i64) +DEF_HELPER_1(ldq_l_raw, i64, i64) +DEF_HELPER_1(ldl_data, i32, i64) +DEF_HELPER_1(ldq_data, i64, i64) DEF_HELPER_2(stl_raw, void, i64, i64) DEF_HELPER_2(stq_raw, void, i64, i64) DEF_HELPER_2(stl_c_raw, i64, i64, i64) diff --git a/target-alpha/op_helper.c b/target-alpha/op_helper.c index 4b6ada7..bea11cb 100644 --- a/target-alpha/op_helper.c +++ b/target-alpha/op_helper.c @@ -1091,56 +1091,50 @@ uint64_t helper_st_virt_to_phys (uint64_t virtaddr) return physaddr; } -void helper_ldl_raw(uint64_t t0, uint64_t t1) +uint32_t helper_ldl_raw(uint64_t addr) { - ldl_raw(t1, t0); + return ldl_phys(addr); } -void helper_ldq_raw(uint64_t t0, uint64_t t1) +uint64_t helper_ldq_raw(uint64_t addr) { - ldq_raw(t1, t0); + return ldq_phys(addr); } -void helper_ldl_l_raw(uint64_t t0, uint64_t t1) +uint32_t helper_ldl_l_raw(uint64_t addr) { - env->lock = t1; - ldl_raw(t1, t0); + env->lock = addr; + return ldl_phys(addr); } -void helper_ldq_l_raw(uint64_t t0, uint64_t t1) +uint64_t helper_ldq_l_raw(uint64_t addr) { - env->lock = t1; - ldl_raw(t1, t0); + env->lock = addr; + return ldl_raw(addr); } -void helper_ldl_kernel(uint64_t t0, uint64_t t1) +uint32_t helper_ldl_data(uint64_t addr) { - ldl_kernel(t1, t0); + /* FIXME: ldl_data won't work in case of fault */ + cpu_abort(env, "ldl_data not implemented\n"); + return ldl_data(addr); } -void helper_ldq_kernel(uint64_t t0, uint64_t t1) +uint64_t helper_ldq_data(uint64_t addr) { - ldq_kernel(t1, t0); -} - -void helper_ldl_data(uint64_t t0, uint64_t t1) -{ - ldl_data(t1, t0); -} - -void helper_ldq_data(uint64_t t0, uint64_t t1) -{ - ldq_data(t1, t0); + /* FIXME: ldq_data won't work in case of fault */ + cpu_abort(env, "ldq_data not implemented\n"); + return ldq_data(addr); } void helper_stl_raw(uint64_t t0, uint64_t t1) { - stl_raw(t1, t0); + stl_phys(t1, t0); } void helper_stq_raw(uint64_t t0, uint64_t t1) { - stq_raw(t1, t0); + stq_phys(t1, t0); } uint64_t helper_stl_c_raw(uint64_t t0, uint64_t t1) @@ -1148,7 +1142,7 @@ uint64_t helper_stl_c_raw(uint64_t t0, uint64_t t1) uint64_t ret; if (t1 == env->lock) { - stl_raw(t1, t0); + stl_phys(t1, t0); ret = 0; } else ret = 1; @@ -1163,7 +1157,7 @@ uint64_t helper_stq_c_raw(uint64_t t0, uint64_t t1) uint64_t ret; if (t1 == env->lock) { - stq_raw(t1, t0); + stq_phys(t1, t0); ret = 0; } else ret = 1; -- 1.6.2