diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-30 18:02:24 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-30 18:02:24 +0000 |
commit | eb9aaa4c4fdaee9225e1843a71b5cdefaf179db6 (patch) | |
tree | 61c0207b228af4cb4f018d93fd7449da07b9b60e /insns.def | |
parent | fd3f9eee0e9a37218edf21e1726ff1b5d90792ba (diff) | |
download | bundler-eb9aaa4c4fdaee9225e1843a71b5cdefaf179db6.tar.gz |
* vm.h: rename insn_func_type to rb_insn_func_type.
* vm_evalbody.ci: ditt.
* insns.def: add opt_call_native_compiled instruction
instead of opt_call_native_compiled.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -2331,21 +2331,21 @@ opt_regexpmatch2 @j ネイティブコンパイルしたメソッドを kick */ DEFINE_INSN -opt_call_native_compiled -() +opt_call_c_function +(VALUE func) () () { -#if __GNUC__ && OPT_USE_JIT_COMPILE - rb_iseq_t *iseq = GET_ISEQ(); - void *label = (void *)iseq->jit_compiled; + rb_insn_func_t funcptr = (rb_insn_func_t) func; + reg_cfp = (funcptr)(th, reg_cfp); - breakpoint(); - SET_PC(iseq->iseq_orig); - goto *label; -#else - rb_bug("opt_call_native_compiled is not supported"); -#endif + if (reg_cfp == 0) { + VALUE err = th->errinfo; + th->errinfo = Qnil; + return err; + } + + NEXT_INSN(); } /** |