qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/5] target-tricore: Add trap handling


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 1/5] target-tricore: Add trap handling
Date: Fri, 12 Feb 2016 13:44:17 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0

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_SYSCALL) {
+        gen_helper_svucx(cpu_env);
+    }
+    /* Tin is loaded into d[15] */
+    tcg_gen_movi_tl(cpu_gpr_d[15], tin);
+    /* The return address in A[11] is updated. */
+    if (class == TRAPC_SYSCALL) {
+        tcg_gen_movi_tl(cpu_gpr_a[11], ctx->next_pc);
+    } else {
+        tcg_gen_movi_tl(cpu_gpr_a[11], ctx->pc);
+    }
+    gen_helper_raise_exception_err(cpu_env, classtemp, 0);
+    tcg_temp_free(classtemp);
+}

Again, drop the inline.  Missing ctx->bstate = BS_EXCP.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]