Statistics
| Branch: | Revision:

root / target-sparc / translate.c @ a8aec295

History | View | Annotate | Download (190.4 kB)

# Date Author Comment
806f352d 03/03/2013 04:29 pm Peter Maydell

gen-icount.h: Rename gen_icount_start/end to gen_tb_start/end

The gen_icount_start/end functions are now somewhat misnamed since they
are useful for generic "start/end of TB" code, used for more than just
icount. Rename them to gen_tb_start/end.

Signed-off-by: Peter Maydell <>...

15fe216f 02/23/2013 07:25 pm Richard Henderson

target-sparc: Use official add2/sub2 interfaces for addx/subx

Cc: Blue Swirl <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

528692a8 02/23/2013 07:25 pm Richard Henderson

target-sparc: Use mul*2 for multiply

Cc: Blue Swirl <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

d1c36ba7 02/23/2013 12:00 pm Ronald Hecht

SPARC LEON power-down support added

Signed-off-by: Ronald Hecht <address@hidden>
Signed-off-by: Fabien Chouteau <>
Signed-off-by: Blue Swirl <>

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

76cad711 12/19/2012 09:29 am Paolo Bonzini

build: kill libdis, move disassemblers to disas/

Signed-off-by: Paolo Bonzini <>

ab1103de 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_instr_start from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

25983cad 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_pc from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

c9c99c22 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_icount from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

92414b31 11/17/2012 03:53 pm Evgeny Voevodin

TCG: Use gen_opc_buf from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

efd7f486 11/17/2012 03:53 pm Evgeny Voevodin

TCG: Use gen_opc_ptr from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

f4359b9f 11/10/2012 03:49 pm Blue Swirl

disas: avoid using cpu_single_env

Pass around CPUArchState instead of using global cpu_single_env.

Signed-off-by: Blue Swirl <>
Acked-by: Richard Henderson <>
Acked-by: Aurelien Jarno <>
Acked-by: Guan Xuetao <>

e7d51b34 10/30/2012 08:52 pm Richard Henderson

target-sparc: Revert setting cpu_dst to gen_dest_gpr

There is some read-after-write error within the OP=2 insns which
prevents setting cpu_dst to the real output register. Until this
is found and fixed, always write to a temporary first.

Cc: Blue Swirl <>...

e7c8afb9 10/20/2012 12:02 pm Aurelien Jarno

target-sparc: fix FMOVr instruction

Like the MOVr instruction, the FMOVr instruction has the condition
encoded between bits 10 and 12.

Cc: Blue Swirl <>
Signed-off-by: Aurelien Jarno <>
Signed-off-by: Blue Swirl <>

f8641947 10/20/2012 10:56 am Richard Henderson

target-sparc: Tidy ldfsr, stfsr

Remove the last uses of cpu_tmp32. Unify the code between sparc64
and sparc32 by using the proper "tl" functions.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

1ec789ab 10/20/2012 10:56 am Richard Henderson

target-sparc: Remove usage of cpu_tmp64 from most helper functions

Use a locally allocated temporary instead.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

3886b8a3 10/20/2012 10:56 am Richard Henderson

target-sparc: Don't use a temporary for gen_dest_fpr_D

In all cases we don't have write-before-read problems.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

aeff993c 10/20/2012 10:56 am Richard Henderson

target-sparc: Remove cpu_tmp64 use from softint insns

The use of "tl" functions and a tmp64 is logically incompatible.
Use cpu_tmp0 instead.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

abcc7191 10/20/2012 10:56 am Richard Henderson

target-sparc: Remove last uses of cpu_tmp64

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

7b04bd5c 10/20/2012 10:56 am Richard Henderson

target-sparc: Only use cpu_dst for eventual writes to a gpr

Use cpu_tmp0 for other stuff, like Write Priv Register.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

5793f2a4 10/20/2012 10:56 am Richard Henderson

target-sparc: Make cpu_dst local to OP=2 insns

And initialize it such that it (may) write directly to rd.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

de9e9d9f 10/20/2012 10:56 am Richard Henderson

target-sparc: Remove cpu_tmp0 as a global

Subroutines do their own local temporary management.
Within disas_sparc_insn we limit the existance of the variable
to OP=2 insns, and delay initialization as late as is reasonable
for the specific XOP.

Signed-off-by: Richard Henderson <>...

97ea2859 10/20/2012 10:56 am Richard Henderson

target-sparc: Conversion to gen_*_gpr, part 1

Only handle the easy cases directly within disas_sparc_insn.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

9d1d4e34 10/20/2012 10:56 am Richard Henderson

target-sparc: Use gen_load_gpr in get_src12

This means we can avoid the incoming temporary, though the cleanup
of the existing temporaries is not performed in this patch.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

c7785e16 10/20/2012 10:56 am Richard Henderson

target-sparc: Convert asi helpers to gen_*_gpr

Push the DisasContext down so that we can use gen_load/store_gpr
in sode gen_ldda_asi, gen_stda_ast, gen_cas_asi, gen_casx_asi.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

06828032 10/20/2012 10:56 am Richard Henderson

target-sparc: Convert swap to gen_load/store_gpr

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

81634eea 10/20/2012 10:56 am Richard Henderson

target-sparc: Finish conversion to gen_load_gpr

All users of gen_movl_{reg_TN,TN_reg} are removed. At the same time,
make cpu_val a local variable for load/store disassembly.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

a4273524 10/20/2012 10:56 am Richard Henderson

target-sparc: Cleanup cpu_src12 allocation

Now that get_temp_tl is used for get_src12, we don't need to
pre-allocate these temporaries.

Fallout from this is moving some assignments around cas/casx to
avoid uninitialized variable warnings.

Signed-off-by: Richard Henderson <>...

5e6ed439 10/20/2012 10:56 am Richard Henderson

target-sparc: Make the cpu_addr variable local to load/store handling

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

2ae23e17 10/20/2012 10:56 am Richard Henderson

target-sparc: Split out get_temp_i32

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

ba5f5179 10/20/2012 10:56 am Richard Henderson

target-sparc: Use get_temp_i32 in gen_dest_fpr_F

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

45778f99 10/20/2012 10:56 am Richard Henderson

target-sparc: Avoid cpu_tmp32 in Read Priv Register

We don't need another temporary here. Load directly into the
register we want to set.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

7b9e066b 10/20/2012 10:56 am Richard Henderson

target-sparc: Avoid cpu_tmp32 in Write Priv Register

No need to copy to a temporary to store 32 bits.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

88023616 10/20/2012 10:56 am Richard Henderson

target-sparc: Add gen_load/store/dest_gpr

Infrastructure to be used to clean up handling of temporaries.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

0fa2a066 10/13/2012 01:17 pm Richard Henderson

target-sparc: Fix optimized %icc comparisons

Signed-off-by: Richard Henderson <>
Tested-by: Aurelien Jarno <>
Signed-off-by: Blue Swirl <>

96b5a3d3 10/13/2012 01:17 pm Richard Henderson

target-sparc: Optimize CC_OP_LOGIC conditions

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

6234ac09 10/13/2012 01:17 pm Richard Henderson

target-sparc: Avoid unnecessary local temporaries

Now that save_state never ends a BB, we don't need to copy
values into local temps around it.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

20132b96 10/13/2012 01:17 pm Richard Henderson

target-sparc: Don't compute full flags value so often

Avoid speculatively computing flags before every potentially trapping
operation and instead do the flags computation when a trap actually
occurs. This gives approximately 30% speedup in emulation.

Signed-off-by: Richard Henderson <>...

690995a6 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use movcond for FMOV*R

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

b09b2fd3 10/07/2012 07:39 pm Richard Henderson

target-sparc: Cleanup "global" temporary allocation

There are 6 temporaries that disas_sparc_insn relies on having been
allocated. Now that they are no longer referenced across branches,
they need not be allocated as local temps.

Move the allocation/free of these temporaries to make it clear that...

fe1755cb 10/07/2012 07:39 pm Richard Henderson

target-sparc: Fall through from not-taken trap

Now that we've cleaned up global temporary allocation, we can
continue translating the fallthru path of a conditional trap.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

2a484ecf 10/07/2012 07:39 pm Richard Henderson

target-sparc: Optimize conditionals using SUBCC

Aka "normal" comparisons. We now have the infrastructure to
pass back non-boolean results from gen_compare. This will
automatically get used by both branches and conditional moves.

Signed-off-by: Richard Henderson <>...

c28ae41e 10/07/2012 07:39 pm Richard Henderson

target-sparc: Move sdivx and udivx out of line

The branches around the exception are maintaining an otherwise
unnecessary use of local temps for the cpu destination.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

bd49ed41 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy Tcc

Share more code between unconditional and conditional paths.

Move the computation of the trap number into the conditional BB;
avoid using temporaries that have gone out of scope (cpu_tmp32)
or rely on local temps (cpu_dst).

Fully fold the exception number when the trap number is %g0+imm....

a2ea4aa9 10/07/2012 07:39 pm Richard Henderson

target-sparc: Move taddcctv and tsubcctv out of line

The branches around the exception are maintaining an otherwise
unnecessary use of local temps for the cpu destination.

Note that gen_op_t{add,sub}_cc were identical to gen_op_{add,sub}_cc.

Signed-off-by: Richard Henderson <>...

6cb675b0 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use movcond in mulscc

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

7e480893 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use DisasCompare and movcond in FMOVR, FMOVCC

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

f52879b4 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use DisasCompare and movcond in MOVCC

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

c33f80f5 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use DisasCompare and movcond in MOVR

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

61316742 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use movcond in gen_generic_branch

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

934da7ee 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy save_npc interface

Use the cpu_cond global register directly instead of passing it down.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

2e655fe7 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy gen_generic_branch interface

The arguments passed are always the same.
Pass down just DisasContext instead.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

416fcaea 10/07/2012 07:39 pm Richard Henderson

target-sparc: Introduce DisasCompare and functions to generate it

For the moment gen_cond et al retain their existing interface,
using setcond to turn a (potential) comparison back into a boolean.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

3a49e759 10/07/2012 07:39 pm Richard Henderson

target-sparc: Use DisasCompare in Tcc

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

dee8913c 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy flush_cond interface

We always pass cpu_cond to the cond parameter. Use that global
register directly instead of passing it down.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

5b12f1e8 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy gen_trap_ifnofpu interface

We always pass cpu_cond to the cond parameter. Use that global
register directly instead of passing it down.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

66442b07 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy save_state interface

Use the cpu_cond global register directly instead of passing it down.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

13a6dd00 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy gen_mov_pc_npc interface

Use the cpu_cond global register directly instead of passing it down.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

d4a288ef 10/07/2012 07:39 pm Richard Henderson

target-sparc: Tidy do_branch interfaces

We always pass cpu_cond to the r_cond parameter. Use that global
register directly instead of passing it down.

Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

fdefe51c 09/27/2012 10:38 pm Richard Henderson

Emit debug_insn for CPU_LOG_TB_OP_OPT as well.

For all targets that currently call tcg_gen_debug_insn_start,
add CPU_LOG_TB_OP_OPT to the condition that gates it.

This is useful for comparing optimization dumps, when the
pre-optimization dump is merely noise....

22036a49 05/12/2012 12:46 pm Artyom Tarasenko

Implement address masking for SPARC v9 CPUs

According to UltraSPARC - IIi User's manual:

14.1.11 Address Masking (Impdep #125)
When PSTATE.AM=1, the CALL, JMPL, and RDPC instructions and all traps
transmit zero in the high-order 32-bits of the PC to their specified...

0184e266 03/18/2012 02:22 pm Blue Swirl

Sparc: avoid AREG0 wrappers for memory access helpers

Adjust generation of load and store templates so that the functions
take a parameter for CPUState instead of relying on global env.

Remove wrappers. Move remaining memory helpers to ldst_helper.c.

Signed-off-by: Blue Swirl <>

fe8d8f0f 03/18/2012 02:22 pm Blue Swirl

Sparc: avoid AREG0 for memory access helpers

Make memory access helpers take a parameter for CPUState instead
of relying on global env. Introduce wrappers for load and store ops.

Signed-off-by: Blue Swirl <>

c5f9864e 03/14/2012 11:20 pm Andreas Färber

target-sparc: Don't overuse CPUState

Scripted conversion:
sed -i "s/CPUState/CPUSPARCState/g" target-sparc/*.[hc]
sed -i "s/#define CPUSPARCState/#define CPUState/" target-sparc/cpu.h

Signed-off-by: Andreas Färber <>
Acked-by: Anthony Liguori <>

96d922a6 11/19/2011 01:22 pm Fabien Chouteau

Improve "ta 0" shutdown

This patch replace the previous implementation with this simplified and
more complete version (no shutdown when psret == 1).

Signed-off-by: Fabien Chouteau <>
Signed-off-by: Blue Swirl <>

6c073553 10/27/2011 12:00 am Richard Henderson

target-sparc: Implement EDGE* instructions.

Signed-off-by: Richard Henderson <>

add545ab 10/27/2011 12:00 am Richard Henderson

target-sparc: Implement ALIGNADDR* inline.

While ALIGNADDR was implemented out-of-line, ALIGNADDRL was not
implemeneted at all. However, this is a very simple operation
so we're better off doing this inline.

Signed-off-by: Richard Henderson <>

793a137a 10/27/2011 12:00 am Richard Henderson

target-sparc: Implement BMASK/BSHUFFLE.

Signed-off-by: Richard Henderson <>

50c796f9 10/27/2011 12:00 am Richard Henderson

target-sparc: Implement FALIGNDATA inline.

This is a relatively simple sequence of shifts.

Signed-off-by: Richard Henderson <>

2dedf314 10/27/2011 12:00 am Richard Henderson

target-sparc: Implement fpack{16,32,fix}.

Signed-off-by: Richard Henderson <>

f888300b 10/26/2011 11:58 pm Richard Henderson

target-sparc: Implement PDIST.

Signed-off-by: Richard Henderson <>

44516772 10/26/2011 11:57 pm Richard Henderson

target-sparc: Do exceptions management fully inside the helpers.

This reduces the size of the individual translation blocks, since
we only emit a single call for each FOP rather than three. In
addition, clear_float_exceptions expands inline to a single byte store....

ac11f776 10/26/2011 11:55 pm Richard Henderson

target-sparc: Extract float128 move to a function.

Signed-off-by: Richard Henderson <>

45c7b743 10/26/2011 11:55 pm Richard Henderson

target-sparc: Undo cpu_fpr rename.

Signed-off-by: Richard Henderson <>

30038fd8 10/26/2011 11:55 pm Richard Henderson

target-sparc: Change fpr representation to doubles.

This allows a more efficient representation for 64-bit hosts.
It should be about the same for 32-bit hosts, as we can still
access the individual pieces of the double.

Signed-off-by: Richard Henderson <>

61f17f6e 10/26/2011 11:55 pm Richard Henderson

target-sparc: Extract common code for floating-point operations.

Signed-off-by: Richard Henderson <>

141ae5c1 10/26/2011 11:50 pm Richard Henderson

target-sparc: Mark fprs dirty in store accessor.

Signed-off-by: Richard Henderson <>

96eda024 10/26/2011 11:50 pm Richard Henderson

target-sparc: Add accessors for double-precision fpr access.

Begin using i64 quantities to manipulate double-precision values.
On a 64-bit host this will, for the moment, generate less efficient
code; on a 32-bit host code quality should be largely unchanged....

03fb8cfc 10/26/2011 11:50 pm Richard Henderson

target-sparc: Pass float64 parameters instead of dt0/1 temporaries.

Signed-off-by: Richard Henderson <>

f027c3b1 10/26/2011 11:50 pm Richard Henderson

target-sparc: Make FPU/VIS helpers const when possible.

This also removes the unused ENV parameter from these helpers.

Signed-off-by: Richard Henderson <>

208ae657 10/26/2011 11:50 pm Richard Henderson

target-sparc: Add accessors for single-precision fpr access.

Load, store, and "create destination". This version attempts to
change the behaviour of the translator as little as possible. We
previously used cpu_tmp32 as the temporary destination, and we...

7a5e4488 10/26/2011 08:18 pm Blue Swirl

Sparc: avoid AREG0 for division op helpers

Make [su]div{,cc} helpers take a parameter for CPUState instead
of relying on global env. Move the functions to helper.c.

Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

79227036 10/26/2011 08:18 pm Blue Swirl

Sparc: avoid AREG0 for softint op helpers and Leon cache control

Make softint op helpers and Leon cache irq manager take a parameter
for CPUState instead of relying on global env. Move the functions
to int{32,64}_helper.c.

Reviewed-by: Richard Henderson <>...

063c3675 10/26/2011 08:18 pm Blue Swirl

Sparc: avoid AREG0 for CWP and PSTATE helpers

Make CWP and PSTATE helpers take a parameter for CPUState instead
of relying on global env. Remove wrapper functions.

Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

f37e2a6b 10/25/2011 10:30 pm Stefan Weil

target-sparc: Fix order of function parameters

The MinGW-w64 gcc complains about wrong parameters for
gen_helper_fpadd16_s and three other functions.

gen_helper_fpadd16_s is declared like this (hidden in lots of macros):

static inline void
gen_helper_fpadd16s(TCGv_i32 retval, TCGv_ptr arg1,...

2ffd9176 10/23/2011 06:09 pm Blue Swirl

Sparc: avoid AREG0 for lazy condition code helpers

Make lazy condition code helpers take a parameter for CPUState instead
of relying on global env.

Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

2e2f4ade 10/23/2011 06:09 pm Blue Swirl

Sparc: avoid AREG0 for float and VIS ops

Make floating point and VIS ops take a parameter for CPUState instead
of relying on global env.

Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

bc265319 10/23/2011 06:08 pm Blue Swirl

Sparc: avoid AREG0 for raise_exception and helper_debug

Make raise_exception() and helper_debug() take a parameter for
CPUState instead of relying on global env. Move the functions
to helper.c.

Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

548f66db 08/06/2011 06:08 pm Artyom Tarasenko

Fix handling of conditional branches in delay slot of a conditional branch

Check whether dc->npc is dynamic before using its value for branch.

Signed-off-by: Artyom Tarasenko <>
Signed-off-by: Blue Swirl <>

ccb57e0e 07/30/2011 11:26 am Tsuneo Saito

SPARC64: fix fnor* and fnand*

Fix the problem that result values are not assigned to the destination
registers.

Signed-off-by: Tsuneo Saito <>
Signed-off-by: Blue Swirl <>

638737ad 07/30/2011 11:26 am Tsuneo Saito

SPARC64: implement %fprs dirty bits

Implement %fprs.DU/DL bits.
The FPU sets %fprs.DL and %fprs.DU when values are assigned to %f0-31
and %f32-63 respectively.

Signed-off-by: Tsuneo Saito <>
Signed-off-by: Blue Swirl <>

b7d69dc2 07/20/2011 11:44 pm Tsuneo Saito

SPARC64: add missing break on fmovdcc

"break" is missing on V9 fmovdcc (%icc).

Signed-off-by: Tsuneo Saito <>
Signed-off-by: Blue Swirl <>

afcb7375 07/20/2011 11:44 pm Tsuneo Saito

SPARC64: fix VIS1 SIMD signed compare instructions

The destination registers of SIMD signed compare instructions
(fcmp*<16|32>) are not FP registers but general purpose r registers.
Comparisons should be freg_rs1 CMP freg_rs2, that were reversed.

Signed-off-by: Tsuneo Saito <>...

f838e2c5 07/14/2011 08:30 pm Blue Swirl

Sparc: fix FPU and AM enable checks for translation

Translation used incorrectly CPUState fields directly to check
for FPU enable state and 32 bit address masking on Sparc64.

Fix by using TB flags instead.

Signed-off-by: Blue Swirl <>

5f06b547 07/14/2011 06:36 pm Tsuneo Saito

SPARC64: fp_disabled checks on stfa/stdfa/stqfa

stfa/stdfa/stqfa instructions should raise fp_disabled exceptions
if %pstate.PEF==0 or %fprs.FEF==0.

Signed-off-by: Tsuneo Saito <>
Signed-off-by: Blue Swirl <>

e1ef36c4 07/14/2011 06:36 pm Tsuneo Saito

SPARC64: Implement stfa/stdfa/stqfa instrcutions properly

This patch implements sparcv9 stfa/stdfa/stqfa instructions
with non block-store ASIs.

Signed-off-by: Tsuneo Saito <>
Signed-off-by: Blue Swirl <>

8872eb4f 07/14/2011 06:35 pm Tsuneo Saito

SPARC64: fp_disabled checks on ldfa/lddfa/ldqfa

ldfa/lddfa/ldqfa instructions should raise fp_disabled exceptions
if %pstate.PEF==0 or %fprs.FEF==0.

Signed-off-by: Tsuneo Saito <>
Signed-off-by: Blue Swirl <>

8e91ed30 07/02/2011 12:28 am Artyom Tarasenko

fix cpu_cc_src and cpu_cc_src2 corruption in udivx and sdivx

udivx and sdvix don't modify condition flags, so they shall not
overwrite cpu_cc_*

Signed-off-by: Artyom Tarasenko <>
Signed-off-by: Blue Swirl <>

2b41f10e 06/26/2011 09:25 pm Blue Swirl

Remove exec-all.h include directives

Most exec-all.h include directives are now useless, remove them.

Signed-off-by: Blue Swirl <>

dcfd14b3 05/22/2011 01:47 pm Blue Swirl

Delete unused tb_invalidate_page_range

tb_invalidate_page_range() was intended to be used to invalidate an
area of a TB which the guest explicitly flushes from i-cache. However,
QEMU detects writes to code areas where TBs have been generated, so
his has never been useful....