#
ab0c8d0f |
| 20-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Use cc->do_unaligned_access
This fixes the problem in which unaligned stores succeeded, but then we raised the exception after modifying memory. Store the ESS for the unaligned da
target/microblaze: Use cc->do_unaligned_access
This fixes the problem in which unaligned stores succeeded, but then we raised the exception after modifying memory. Store the ESS for the unaligned data access in the iflags for the insn, so that it can be found during unwind.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
683a247e |
| 20-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Store "current" iflags in insn_start
This data is available during exception unwinding, thus we can restore it from there directly, rather than saving it during the TB. Thus we m
target/microblaze: Store "current" iflags in insn_start
This data is available during exception unwinding, thus we can restore it from there directly, rather than saving it during the TB. Thus we may remove the t_sync_flags() calls in the load/store operations.
Note that these calls were missing from the other places where runtime exceptions may be raised, such as idiv and the floating point operations.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
7b34f45f |
| 20-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Move bimm to BIMM_FLAG
It makes sense to keep BIMM with D_FLAG, as they can be written back to iflags at the same time. BIMM_FLAG does not need to be added to IFLAGS_TB_MASK beca
target/microblaze: Move bimm to BIMM_FLAG
It makes sense to keep BIMM with D_FLAG, as they can be written back to iflags at the same time. BIMM_FLAG does not need to be added to IFLAGS_TB_MASK because it does not affect the next TB, only the exception path out of the current TB. Renumber IMM_FLAG, as the value 4 holds no particular significance; pack these two flags at the bottom of the bitfield.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
d8e59c4a |
| 19-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_load and dec_store to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Ric
target/microblaze: Convert dec_load and dec_store to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
287b1def |
| 19-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Cache mem_index in DisasContext
Ideally, nothing outside the top-level of translation even has access to env. Cache the value in init_disas_context.
Tested-by: Edgar E. Iglesias
target/microblaze: Cache mem_index in DisasContext
Ideally, nothing outside the top-level of translation even has access to env. Cache the value in init_disas_context.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2c32179f |
| 19-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Replace MSR_EE_FLAG with MSR_EE
There's no reason to define MSR_EE_FLAG; we can just use the original MSR_EE define. Document the other flags copied into tb_flags with iflag to r
target/microblaze: Replace MSR_EE_FLAG with MSR_EE
There's no reason to define MSR_EE_FLAG; we can just use the original MSR_EE define. Document the other flags copied into tb_flags with iflag to reserve those bits.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
d5aead3d |
| 19-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_fpu to decodetree
The current dec_check_fpuv2 test, raising an FPU exception for an unimplemented instruction, appears to be contradictory to the manual. Drop that an
target/microblaze: Convert dec_fpu to decodetree
The current dec_check_fpuv2 test, raising an FPU exception for an unimplemented instruction, appears to be contradictory to the manual. Drop that and merely check use_fpu == 2.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
e64b2e5c |
| 18-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_imm to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson
target/microblaze: Convert dec_imm to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
081d8e02 |
| 18-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_barrel to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henders
target/microblaze: Convert dec_barrel to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
39cf3864 |
| 18-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_bit to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson
target/microblaze: Convert dec_bit to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
b1354342 |
| 18-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_div to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson
target/microblaze: Convert dec_div to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
97955ceb |
| 18-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_mul to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson
target/microblaze: Convert dec_mul to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
cb0a0a4c |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_and, dec_or, dec_xor to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: R
target/microblaze: Convert dec_and, dec_or, dec_xor to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
607f5767 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_pattern to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Hender
target/microblaze: Convert dec_pattern to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
58b48b63 |
| 25-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Implement cmp and cmpu inline
These are simple enough operations; we do not need to call an out-of-line helper.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-
target/microblaze: Implement cmp and cmpu inline
These are simple enough operations; we do not need to call an out-of-line helper.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
a2b0b90e |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_sub to decodetree
Use tcg_gen_add2_i32 for computing carry. This removes the last use of helper_carry, so remove that.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xi
target/microblaze: Convert dec_sub to decodetree
Use tcg_gen_add2_i32 for computing carry. This removes the last use of helper_carry, so remove that.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
20800179 |
| 18-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert dec_add to decodetree
Adds infrastrucure for translation of instructions, which could not be added before their first use. Cache a temporary which represents r0 as the im
target/microblaze: Convert dec_add to decodetree
Adds infrastrucure for translation of instructions, which could not be added before their first use. Cache a temporary which represents r0 as the immediate 0 value, or a sink.
Move the special case of opcode_0_illegal from old_decode() into decodetree as well, lest this get interpreted as add.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
44d1432b |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Add decodetree infrastructure
The new interface is a stub that recognizes no instructions. It falls back to the old decoder for all instructions.
Tested-by: Edgar E. Iglesias <ed
target/microblaze: Add decodetree infrastructure
The new interface is a stub that recognizes no instructions. It falls back to the old decoder for all instructions.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
d7ecb757 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Ensure imm constant is always available
Include the env->imm value in the TB values when IMM_FLAG is set. This means that we can always reconstruct the complete 32-bit imm. Discar
target/microblaze: Ensure imm constant is always available
Include the env->imm value in the TB values when IMM_FLAG is set. This means that we can always reconstruct the complete 32-bit imm. Discard env_imm when its contents can no longer be accessed.
Fix user-mode checks for BRK/BRKI, which depend on IMM.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
11105d67 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Remove LOG_DIS
Also remove the related defines, DISAS_MB and DEBUG_DISAS. Rely on print_insn_microblaze.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edg
target/microblaze: Remove LOG_DIS
Also remove the related defines, DISAS_MB and DEBUG_DISAS. Rely on print_insn_microblaze.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
e3f8d192 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Remove empty D macros
This is never used in op_helper.c and translate.c. There are two trivial uses in helper.c which can be improved by always logging MMU_EXCP to CPU_LOG_INT.
target/microblaze: Remove empty D macros
This is never used in op_helper.c and translate.c. There are two trivial uses in helper.c which can be improved by always logging MMU_EXCP to CPU_LOG_INT.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
ba0f357c |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Remove DISAS_GNU
This is never used.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard He
target/microblaze: Remove DISAS_GNU
This is never used.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
47393d56 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Remove SIM_COMPAT
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.hen
target/microblaze: Remove SIM_COMPAT
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
372122e3 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert to translator_loop
Finish the conversion to the generic translator_loop.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.ig
target/microblaze: Convert to translator_loop
Finish the conversion to the generic translator_loop.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
d4705ae0 |
| 17-Aug-2020 |
Richard Henderson <richard.henderson@linaro.org> |
target/microblaze: Convert to DisasContextBase
Part one of conversion to the generic translator_loop is to use the DisasContextBase and the members therein.
Tested-by: Edgar E. Iglesias <edgar.igle
target/microblaze: Convert to DisasContextBase
Part one of conversion to the generic translator_loop is to use the DisasContextBase and the members therein.
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|