On 02/12/2016 07:55 PM, Richard Henderson wrote:
> On 02/12/2016 10:12 PM, Bastian Koppelmann wrote:
>> On 02/12/2016 03:39 AM, Richard Henderson wrote:
>>
>> What do you mean by "pre-interrupt state"? The register context is saved
>> by generate_trap() calls.
>
> Because do_interrupt is normally
On 02/12/2016 10:12 PM, Bastian Koppelmann wrote:
On 02/12/2016 03:39 AM, Richard Henderson wrote:
On 02/12/2016 03:01 AM, Bastian Koppelmann wrote:
+void tricore_cpu_do_interrupt(CPUState *cs)
+{
+TriCoreCPU *cpu = TRICORE_CPU(cs);
+CPUTriCoreState *env = &cpu->env;
+
+/* The stack
On 02/12/2016 03:39 AM, Richard Henderson wrote:
> On 02/12/2016 03:01 AM, Bastian Koppelmann wrote:
>> +void tricore_cpu_do_interrupt(CPUState *cs)
>> +{
>> +TriCoreCPU *cpu = TRICORE_CPU(cs);
>> +CPUTriCoreState *env = &cpu->env;
>> +
>> +/* The stack pointer in A[10] is set to the In
On 02/12/2016 03:01 AM, Bastian Koppelmann wrote:
+static inline void
+generate_trap(DisasContext *ctx, int class, int tin)
+{
+TCGv_i32 classtemp = tcg_const_i32(class);
+gen_save_pc(ctx->pc);
+/* upper context cannot be saved, if the context list is empty */
+if (class != TRAPC_
On 02/12/2016 03:01 AM, Bastian Koppelmann wrote:
Add the infrastructure needed to generate and handle traps.
Signed-off-by: Bastian Koppelmann
---
target-tricore/cpu-qom.h | 2 +-
target-tricore/cpu.c | 2 +-
target-tricore/cpu.h | 1 +
target-tricore/helper.c| 52 +++
Add the infrastructure needed to generate and handle traps.
Signed-off-by: Bastian Koppelmann
---
target-tricore/cpu-qom.h | 2 +-
target-tricore/cpu.c | 2 +-
target-tricore/cpu.h | 1 +
target-tricore/helper.c| 52 +++
target-tricore/helper.h