Skip to content
Snippets Groups Projects
Select Git revision
  • bae9928c22d6e134ced029aaa0c28c6d1f55832f
  • main default protected
  • gitkeep
  • dev
  • ipynb
  • 81-add-id-to-figure-file-metadata
  • v0.3.2
  • v0.3.1
  • v0.3.0
  • v0.2.3
  • test_tag
  • v0.2.2
  • v.0.2.1
  • v0.2.1
  • v0.1.2
  • v0.1.1
  • v0.1.0
17 results

example.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    translate.c 57.30 KiB
    /*
     *  UniCore32 translation
     *
     * Copyright (C) 2010-2011 GUAN Xue-tao
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation, or (at your option) any
     * later version. See the COPYING file in the top-level directory.
     */
    #include <stdarg.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <inttypes.h>
    
    #include "cpu.h"
    #include "disas.h"
    #include "tcg-op.h"
    #include "qemu-log.h"
    
    #include "helper.h"
    #define GEN_HELPER 1
    #include "helper.h"
    
    /* internal defines */
    typedef struct DisasContext {
        target_ulong pc;
        int is_jmp;
        /* Nonzero if this instruction has been conditionally skipped.  */
        int condjmp;
        /* The label that will be jumped to when the instruction is skipped.  */
        int condlabel;
        struct TranslationBlock *tb;
        int singlestep_enabled;
    } DisasContext;
    
    #define IS_USER(s) 1
    
    /* These instructions trap after executing, so defer them until after the
       conditional executions state has been updated.  */
    #define DISAS_SYSCALL 5
    
    static TCGv_ptr cpu_env;
    static TCGv_i32 cpu_R[32];
    
    /* FIXME:  These should be removed.  */
    static TCGv cpu_F0s, cpu_F1s;
    static TCGv_i64 cpu_F0d, cpu_F1d;
    
    #include "gen-icount.h"
    
    static const char *regnames[] = {
          "r00", "r01", "r02", "r03", "r04", "r05", "r06", "r07",
          "r08", "r09", "r10", "r11", "r12", "r13", "r14", "r15",
          "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
          "r24", "r25", "r26", "r27", "r28", "r29", "r30", "pc" };
    
    /* initialize TCG globals.  */
    void uc32_translate_init(void)
    {
        int i;
    
        cpu_env = tcg_global_reg_new_ptr(TCG_AREG0, "env");
    
        for (i = 0; i < 32; i++) {
            cpu_R[i] = tcg_global_mem_new_i32(TCG_AREG0,
                                    offsetof(CPUUniCore32State, regs[i]), regnames[i]);
        }