示例#1
0
void genbgez(void)
{
#ifdef INTERPRET_BGEZ
   gencallinterp((native_type)cached_interpreter_table.BGEZ, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC && 
            (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
   {
      gencallinterp((native_type)cached_interpreter_table.BGEZ, 1);
      return;
   }

   genbgez_test();
   gendelayslot();
   gentest();
#endif
}
示例#2
0
void genbltz(void)
{
#ifdef INTERPRET_BLTZ
   gencallinterp((unsigned int)cached_interpreter_table.BLTZ, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC && 
       (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
     {
    gencallinterp((unsigned int)cached_interpreter_table.BLTZ, 1);
    return;
     }
   
   genbltz_test();
   gendelayslot();
   gentest();
#endif
}
示例#3
0
void genbgez(void)
{
#ifdef INTERPRET_BGEZ
   gencallinterp((unsigned int)BGEZ, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC && 
       (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
     {
    gencallinterp((unsigned int)BGEZ, 1);
    return;
     }
   
   genbgez_test();
   gendelayslot();
   gentest();
#endif
}
示例#4
0
void genbltzal(void)
{
#ifdef INTERPRET_BLTZAL
   gencallinterp((unsigned int)BLTZAL, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC && 
       (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
     {
    gencallinterp((unsigned int)BLTZAL, 1);
    return;
     }
   
   genbltz_test();
   genbranchlink();
   gendelayslot();
   gentest();
#endif
}
示例#5
0
文件: gbc.c 项目: AlexOteiza/n64ios
void genbc1f(void)
{
#ifdef INTERPRET_BC1F
   gencallinterp((unsigned int)BC1F, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC &&
       (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
     {
    gencallinterp((unsigned int)BC1F, 1);
    return;
     }
   
   gencheck_cop1_unusable();
   genbc1f_test();
   gendelayslot();
   gentest();
#endif
}
示例#6
0
void genbc1t(void)
{
#ifdef INTERPRET_BC1T
   gencallinterp((native_type)cached_interpreter_table.BC1T, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC &&
            (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
   {
      gencallinterp((native_type)cached_interpreter_table.BC1T, 1);
      return;
   }

   gencheck_cop1_unusable();
   genbc1t_test();
   gendelayslot();
   gentest();
#endif
}
示例#7
0
void genbc1f(void)
{
#ifdef INTERPRET_BC1F
   gencallinterp((unsigned int)cached_interpreter_table.BC1F, 1);
#else
   if (((g_dev.r4300.recomp.dst->addr & 0xFFF) == 0xFFC &&
       (g_dev.r4300.recomp.dst->addr < 0x80000000 || g_dev.r4300.recomp.dst->addr >= 0xC0000000))||g_dev.r4300.recomp.no_compiled_jump)
     {
    gencallinterp((unsigned int)cached_interpreter_table.BC1F, 1);
    return;
     }
   
   gencheck_cop1_unusable();
   genbc1f_test();
   gendelayslot();
   gentest();
#endif
}
示例#8
0
void genbltz(void)
{
#if defined(COUNT_INSTR)
   inc_m32rel(&instr_count[47]);
#endif
#ifdef INTERPRET_BLTZ
   gencallinterp((unsigned long long)BLTZ, 1);
#else
   if (((dst->addr & 0xFFF) == 0xFFC && 
       (dst->addr < 0x80000000 || dst->addr >= 0xC0000000))||no_compiled_jump)
     {
    gencallinterp((unsigned long long)BLTZ, 1);
    return;
     }
   
   genbltz_test();
   gendelayslot();
   gentest();
#endif
}
示例#9
0
文件: gbc.c 项目: derselbst/lazyusf2
void genbc1f(usf_state_t * state)
{
#if defined(COUNT_INSTR)
   inc_m32rel(state, &state->instr_count[100]);
#endif
#ifdef INTERPRET_BC1F
   gencallinterp(state, (unsigned long long)state->current_instruction_table.BC1F, 1);
#else
   if (((state->dst->addr & 0xFFF) == 0xFFC &&
       (state->dst->addr < 0x80000000 || state->dst->addr >= 0xC0000000))||state->no_compiled_jump)
     {
    gencallinterp(state, (unsigned long long)state->current_instruction_table.BC1F, 1);
    return;
     }
   
   gencheck_cop1_unusable(state);
   genbc1f_test(state);
   gendelayslot(state);
   gentest(state);
#endif
}