diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-09-30 01:58:33 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-09-30 01:58:33 +0000 |
commit | 540635ba650bd2529ce55c4135cd594a5fa109b5 (patch) | |
tree | e609e602a027047c3151159dc55c02550e80ea5e /target-mips/op.c | |
parent | 868d585aced5457218b3443398d08594d9c3ba6d (diff) | |
download | qemu-540635ba650bd2529ce55c4135cd594a5fa109b5.zip |
Code provision for n32/n64 mips userland emulation. Not functional yet.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3284 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/op.c')
-rw-r--r-- | target-mips/op.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/target-mips/op.c b/target-mips/op.c index 2f513aeb6f..4290970523 100644 --- a/target-mips/op.c +++ b/target-mips/op.c @@ -296,7 +296,7 @@ void op_addr_add (void) /* For compatibility with 32-bit code, data reference in user mode with Status_UX = 0 should be casted to 32-bit and sign extended. See the MIPS64 PRA manual, section 4.10. */ -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) if ((env->hflags & MIPS_HFLAG_UM) && !(env->CP0_Status & (1 << CP0St_UX))) T0 = (int64_t)(int32_t)(T0 + T1); @@ -379,7 +379,7 @@ void op_divu (void) RETURN(); } -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) /* Arithmetic */ void op_dadd (void) { @@ -448,7 +448,7 @@ void op_ddivu (void) RETURN(); } #endif -#endif /* TARGET_MIPS64 */ +#endif /* TARGET_MIPSN32 || TARGET_MIPS64 */ /* Logical */ void op_and (void) @@ -569,7 +569,7 @@ void op_clz (void) RETURN(); } -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) #if TARGET_LONG_BITS > HOST_LONG_BITS /* Those might call libgcc functions. */ @@ -770,7 +770,7 @@ void op_dclz (void) } RETURN(); } -#endif +#endif /* TARGET_MIPSN32 || TARGET_MIPS64 */ /* 64 bits arithmetic */ #if TARGET_LONG_BITS > HOST_LONG_BITS @@ -873,7 +873,7 @@ void op_msubu (void) } #endif /* TARGET_LONG_BITS > HOST_LONG_BITS */ -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) void op_dmult (void) { CALL_FROM_TB4(muls64, &(env->HI[0][env->current_tc]), &(env->LO[0][env->current_tc]), T0, T1); @@ -977,7 +977,7 @@ void op_save_btarget (void) RETURN(); } -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) void op_save_btarget64 (void) { env->btarget = ((uint64_t)PARAM1 << 32) | (uint32_t)PARAM2; @@ -1804,7 +1804,7 @@ void op_mtc0_entryhi (void) /* 1k pages not implemented */ val = T0 & ((TARGET_PAGE_MASK << 1) | 0xFF); -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) val &= env->SEGMask; #endif old = env->CP0_EntryHi; @@ -2031,7 +2031,7 @@ void op_mtc0_desave (void) RETURN(); } -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) void op_dmfc0_yqmask (void) { T0 = env->CP0_YQMask; @@ -2145,7 +2145,7 @@ void op_dmfc0_errorepc (void) T0 = env->CP0_ErrorEPC; RETURN(); } -#endif /* TARGET_MIPS64 */ +#endif /* TARGET_MIPSN32 || TARGET_MIPS64 */ /* MIPS MT functions */ void op_mftgpr(void) @@ -3059,7 +3059,7 @@ void op_save_pc (void) RETURN(); } -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) void op_save_pc64 (void) { env->PC[env->current_tc] = ((uint64_t)PARAM1 << 32) | (uint32_t)PARAM2; @@ -3131,7 +3131,7 @@ void op_wsbh(void) RETURN(); } -#ifdef TARGET_MIPS64 +#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) void op_dext(void) { unsigned int pos = PARAM1; |