#
0dfae4f9 |
| 08-Nov-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Fix RETURN
Perform window restore before pc update. Required in order to recognize any window underflow trap with the current pc.
Fixes: 86b82fe021f4 ("target/sparc: Move JMPL, RETT,
target/sparc: Fix RETURN
Perform window restore before pc update. Required in order to recognize any window underflow trap with the current pc.
Fixes: 86b82fe021f4 ("target/sparc: Move JMPL, RETT, RETURN to decodetree") Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2c4f56c9 |
| 21-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Check for invalid cond in gen_compare_reg
Consolidate the test here; drop the "inverted logic". Fix MOVr and FMOVR, which were missing the invalid test.
Tested-by: Mark Cave-Ayland <m
target/sparc: Check for invalid cond in gen_compare_reg
Consolidate the test here; drop the "inverted logic". Fix MOVr and FMOVR, which were missing the invalid test.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
3a6b8de3 |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Implement UDIV inline
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.h
target/sparc: Implement UDIV inline
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
f3141174 |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Implement UDIVX and SDIVX inline
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson
target/sparc: Implement UDIVX and SDIVX inline
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
89527e3a |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Discard cpu_cond at the end of each insn
If the insn raises no exceptions, there will be no path in which cpu_cond is used, and so the computation may be optimized away.
Tested-by: Ma
target/sparc: Discard cpu_cond at the end of each insn
If the insn raises no exceptions, there will be no path in which cpu_cond is used, and so the computation may be optimized away.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
533f042f |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Record entire jump condition in DisasContext
Use the original condition instead of consuming cpu_cond, which will now only be live along exception paths.
Tested-by: Mark Cave-Ayland <
target/sparc: Record entire jump condition in DisasContext
Use the original condition instead of consuming cpu_cond, which will now only be live along exception paths.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
444d8b30 |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Merge gen_op_next_insn into only caller
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard He
target/sparc: Merge gen_op_next_insn into only caller
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
3951b7a8 |
| 21-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Pass displacement to advance_jump_cond
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Hen
target/sparc: Pass displacement to advance_jump_cond
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2d9bb237 |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Merge advance_jump_uncond_{never,always} into advance_jump_cond
Handle these via TCG_COND_{ALWAYS,NEVER}. Allow dc->npc to be variable, using gen_mov_pc_npc.
Tested-by: Mark Cave-Ayla
target/sparc: Merge advance_jump_uncond_{never,always} into advance_jump_cond
Handle these via TCG_COND_{ALWAYS,NEVER}. Allow dc->npc to be variable, using gen_mov_pc_npc.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
4a8d145d |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Merge gen_branch2 into advance_pc
The function had only one caller. Canonicalize the cpu_cond test to TCG_COND_NE, the "natural" sense of its value.
Tested-by: Mark Cave-Ayland <mark
target/sparc: Merge gen_branch2 into advance_pc
The function had only one caller. Canonicalize the cpu_cond test to TCG_COND_NE, the "natural" sense of its value.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
c76c8045 |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Do flush_cond in advance_jump_cond
Do this here instead of in each caller.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ila
target/sparc: Do flush_cond in advance_jump_cond
Do this here instead of in each caller.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
816f89b7 |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Always copy conditions into a new temporary
This will allow the condition to live across changes to the global cc variables.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk
target/sparc: Always copy conditions into a new temporary
This will allow the condition to live across changes to the global cc variables.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
c8507ebf |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Change DisasCompare.c2 to int
We don't require c2 to be variable, so emphasize that. We don't currently require c2 to be non-zero, but that will change.
Tested-by: Mark Cave-Ayland <m
target/sparc: Change DisasCompare.c2 to int
We don't require c2 to be variable, so emphasize that. We don't currently require c2 to be non-zero, but that will change.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
dd7dbfcc |
| 16-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove DisasCompare.is_bool
Since we're going to feed cpu_cond to another comparison, we don't reqire a boolean value -- anything non-zero is sufficient.
Tested-by: Mark Cave-Ayland <
target/sparc: Remove DisasCompare.is_bool
Since we're going to feed cpu_cond to another comparison, we don't reqire a boolean value -- anything non-zero is sufficient.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
b597eedc |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove CC_OP leftovers
All instructions have been converted to generate full condition codes explicitly.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cav
target/sparc: Remove CC_OP leftovers
All instructions have been converted to generate full condition codes explicitly.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
68524e83 |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove CC_OP_TADDTV, CC_OP_TSUBTV
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderso
target/sparc: Remove CC_OP_TADDTV, CC_OP_TSUBTV
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
f828df74 |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove CC_OP_SUB, CC_OP_SUBX, CC_OP_TSUB
These are all related and implementable with common code.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayla
target/sparc: Remove CC_OP_SUB, CC_OP_SUBX, CC_OP_TSUB
These are all related and implementable with common code.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
b989ce73 |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove CC_OP_ADD, CC_OP_ADDX, CC_OP_TADD
These are all related and implementable with common code.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayla
target/sparc: Remove CC_OP_ADD, CC_OP_ADDX, CC_OP_TADD
These are all related and implementable with common code.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
13260103 |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove CC_OP_DIV
Return both result and overflow from helper_[us]div. Compute all flags explicitly in gen_op_[us]divcc.
Marginally improve the INT64_MIN special case in helper_sdiv.
target/sparc: Remove CC_OP_DIV
Return both result and overflow from helper_[us]div. Compute all flags explicitly in gen_op_[us]divcc.
Marginally improve the INT64_MIN special case in helper_sdiv.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2a45b736 |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove CC_OP_LOGIC
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.hend
target/sparc: Remove CC_OP_LOGIC
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2a1905c7 |
| 14-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Split psr and xcc into components
Step in removing CC_OP: change the representation of CC_OP_FLAGS. The 8 bits are distributed between 6 variables, which should make it easy to keep up
target/sparc: Split psr and xcc into components
Step in removing CC_OP: change the representation of CC_OP_FLAGS. The 8 bits are distributed between 6 variables, which should make it easy to keep up to date.
The code within cc_helper.c is quite ugly but is only temporary.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
ba9c09b4 |
| 11-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Remove disas_sparc_legacy
All instructions are now converted.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Si
target/sparc: Remove disas_sparc_legacy
All instructions are now converted.
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
3a38260e |
| 11-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Convert FZERO, FONE to decodetree
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderso
target/sparc: Convert FZERO, FONE to decodetree
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2f722641 |
| 11-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Move FPACK16, FPACKFIX to decodetree
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Hende
target/sparc: Move FPACK16, FPACKFIX to decodetree
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
e2fa6bd1 |
| 11-Oct-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/sparc: Move FPCMP* to decodetree
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richa
target/sparc: Move FPCMP* to decodetree
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|