diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-30 06:45:44 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-30 06:45:44 +0000 |
commit | 8bb6e981e09c914783c0a7d43c711de4e4f36ad4 (patch) | |
tree | 2860f7b6df5a342b0f684bb365ec99f895bab733 /target-alpha/op_mem.h | |
parent | f4ed86794cf6f2e3d5cdc63424e99358da6248cf (diff) | |
download | qemu-8bb6e981e09c914783c0a7d43c711de4e4f36ad4.zip qemu-8bb6e981e09c914783c0a7d43c711de4e4f36ad4.tar.gz qemu-8bb6e981e09c914783c0a7d43c711de4e4f36ad4.tar.bz2 |
target-alpha: convert palcode ops to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5360 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-alpha/op_mem.h')
-rw-r--r-- | target-alpha/op_mem.h | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/target-alpha/op_mem.h b/target-alpha/op_mem.h deleted file mode 100644 index 0d031a2..0000000 --- a/target-alpha/op_mem.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Alpha emulation cpu micro-operations for memory accesses for qemu. - * - * Copyright (c) 2007 Jocelyn Mayer - * - * 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 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -//#define DEBUG_MEM_ACCESSES -#if defined (DEBUG_MEM_ACCESSES) -void helper_print_mem_EA (target_ulong EA); -#define print_mem_EA(EA) do { helper_print_mem_EA(EA); } while (0) -#else -#define print_mem_EA(EA) do { } while (0) -#endif - -static always_inline uint32_t glue(ldl_l, MEMSUFFIX) (target_ulong EA) -{ - env->lock = EA; - - return glue(ldl, MEMSUFFIX)(EA); -} - -static always_inline uint32_t glue(ldq_l, MEMSUFFIX) (target_ulong EA) -{ - env->lock = EA; - - return glue(ldq, MEMSUFFIX)(EA); -} - -static always_inline void glue(stl_c, MEMSUFFIX) (target_ulong EA, - uint32_t data) -{ - if (EA == env->lock) { - glue(stl, MEMSUFFIX)(EA, data); - T0 = 0; - } else { - T0 = 1; - } - env->lock = -1; -} - -static always_inline void glue(stq_c, MEMSUFFIX) (target_ulong EA, - uint64_t data) -{ - if (EA == env->lock) { - glue(stq, MEMSUFFIX)(EA, data); - T0 = 0; - } else { - T0 = 1; - } - env->lock = -1; -} - -#define ALPHA_LD_OP(name, op) \ -void OPPROTO glue(glue(op_ld, name), MEMSUFFIX) (void) \ -{ \ - print_mem_EA(T0); \ - T1 = glue(op, MEMSUFFIX)(T0); \ - RETURN(); \ -} - -#define ALPHA_ST_OP(name, op) \ -void OPPROTO glue(glue(op_st, name), MEMSUFFIX) (void) \ -{ \ - print_mem_EA(T0); \ - glue(op, MEMSUFFIX)(T0, T1); \ - RETURN(); \ -} - -ALPHA_LD_OP(l, ldl); -ALPHA_ST_OP(l, stl); -ALPHA_LD_OP(q, ldq); -ALPHA_ST_OP(q, stq); - -ALPHA_LD_OP(l_l, ldl_l); -ALPHA_LD_OP(q_l, ldq_l); -ALPHA_ST_OP(l_c, stl_c); -ALPHA_ST_OP(q_c, stq_c); - -#undef MEMSUFFIX |