File tree Expand file tree Collapse file tree 4 files changed +19
-4
lines changed Expand file tree Collapse file tree 4 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -277,6 +277,10 @@ else()
277277        endwhile (TRUE )
278278    endif ()
279279
280+     if (UNICORN_INTERPRETER)
281+         set (UNICORN_TARGET_ARCH "tci" )
282+     endif ()
283+ 
280284    set (EXTRA_CFLAGS "--extra-cflags=" )
281285    if (UNICORN_HAS_X86)
282286        set (EXTRA_CFLAGS "${EXTRA_CFLAGS} -DUNICORN_HAS_X86 " )
@@ -514,6 +518,10 @@ set(UNICORN_ARCH_COMMON
514518    qemu/softmmu/unicorn_vtlb.c
515519)
516520
521+ if (UNICORN_INTERPRETER)
522+     list (APPEND  UNICORN_ARCH_COMMON qemu/tcg/tci.c)
523+ endif ()
524+ 
517525if (UNICORN_HAS_X86)
518526add_library (x86_64-softmmu STATIC 
519527    ${UNICORN_ARCH_COMMON} 
Original file line number Diff line number Diff line change @@ -695,6 +695,7 @@ struct TCGContext {
695695    struct  jit_code_entry  * one_entry ;
696696    /* qemu/tcg/tcg-common.c */ 
697697    TCGOpDef  * tcg_op_defs ;
698+     size_t  tcg_op_defs_max ;
698699
699700    // Unicorn engine variables 
700701    struct  uc_struct  * uc ;
Original file line number Diff line number Diff line change 6262
6363#include  <uc_priv.h> 
6464
65+ #if  CONFIG_TCG_INTERPRETER 
66+ #include  "tcg/tcg.h" 
67+ #endif 
68+ 
6569/* Forward declarations for functions declared in tcg-target.inc.c and 
6670   used here. */ 
6771static  void  tcg_target_init (TCGContext  * s );
@@ -659,6 +663,7 @@ static const TCGOpDef tcg_op_defs_org[] = {
659663#include  "tcg/tcg-opc.h" 
660664#undef  DEF
661665};
666+ static  const  size_t  tcg_op_defs_max_org  =  ARRAY_SIZE (tcg_op_defs_org );
662667
663668static  void  process_op_defs (TCGContext  * s );
664669static  TCGTemp  * tcg_global_reg_new_internal (TCGContext  * s , TCGType  type ,
@@ -727,6 +732,7 @@ void tcg_context_init(TCGContext *s)
727732    // copy original tcg_op_defs_org for private usage 
728733    s -> tcg_op_defs  =  g_malloc0 (sizeof (tcg_op_defs_org ));
729734    memcpy (s -> tcg_op_defs , tcg_op_defs_org , sizeof (tcg_op_defs_org ));
735+     s -> tcg_op_defs_max  =  tcg_op_defs_max_org ;
730736
731737    /* Count total number of arguments and allocate the corresponding 
732738       space */ 
Original file line number Diff line number Diff line change @@ -871,14 +871,14 @@ static void tcg_target_init(TCGContext *s)
871871#endif 
872872
873873    /* The current code uses uint8_t for tcg operations. */ 
874-     tcg_debug_assert (tcg_op_defs_max  <= UINT8_MAX );
874+     tcg_debug_assert (s -> tcg_op_defs_max  <= UINT8_MAX );
875875
876876    /* Registers available for 32 bit operations. */ 
877-     tcg_target_available_regs [TCG_TYPE_I32 ] =  BIT (TCG_TARGET_NB_REGS ) -  1 ;
877+     s -> tcg_target_available_regs [TCG_TYPE_I32 ] =  BIT (TCG_TARGET_NB_REGS ) -  1 ;
878878    /* Registers available for 64 bit operations. */ 
879-     tcg_target_available_regs [TCG_TYPE_I64 ] =  BIT (TCG_TARGET_NB_REGS ) -  1 ;
879+     s -> tcg_target_available_regs [TCG_TYPE_I64 ] =  BIT (TCG_TARGET_NB_REGS ) -  1 ;
880880    /* TODO: Which registers should be set here? */ 
881-     tcg_target_call_clobber_regs  =  BIT (TCG_TARGET_NB_REGS ) -  1 ;
881+     s -> tcg_target_call_clobber_regs  =  BIT (TCG_TARGET_NB_REGS ) -  1 ;
882882
883883    s -> reserved_regs  =  0 ;
884884    tcg_regset_set_reg (s -> reserved_regs , TCG_REG_CALL_STACK );
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments