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