aboutsummaryrefslogtreecommitdiffstats
path: root/insns.def
Commit message (Collapse)AuthorAgeFilesLines
* * blockinlining.c, compile.c, compile.h, debug.c, debug.h,ko12007-11-131-83/+87
| | | | | | | | | | | id.c, insnhelper.h, insns.def, thread.c, thread_pthread.ci, thread_pthread.h, thread_win32.ci, thread_win32.h, vm.h, vm_dump.c, vm_evalbody.ci, vm_opts.h: fix comments and copyright year. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h: introduce 2 macros:ko12007-11-131-8/+8
| | | | | | | | | | | | | | | RFLOAT_VALUE(v), DOUBLE2NUM(dbl). Rename RFloat#value -> RFloat#double_value. Do not touch RFloat#double_value directly. * bignum.c, insns.def, marshal.c, math.c, numeric.c, object.c, pack.c, parse.y, process.c, random.c, sprintf.c, string.c, time.c: apply above changes. * ext/dl/mkcallback.rb, ext/json/ext/generator/generator.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (opt_eq): fix to use rb_str_equal().ko12007-10-071-15/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (opt_eq): get rid of gcc bug.nobu2007-10-061-11/+11
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h: export rb_ivar_foreach.akr2007-09-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/ruby/ruby.h: modify struct RObject and RClass for optimizing T_OBJECT space. [ruby-dev:31853] (ROBJECT_LEN, ROBJECT_PTR) (RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_SUPER, RCLASS_IV_INDEX_TBL) (RMODULE_IV_TBL, RMODULE_M_TBL, RMODULE_SUPER): abstract accessor defined. * variable.c: support the modified RObject and RClass. * object.c: ditto. * class.c: ditto. * gc.c: ditto. * marshal.c: ditto. * eval_method.ci: use the abstract accessor. * insns.def: ditto. * proc.c: ditto. * struct.c: ditto. * eval.c: ditto. * error.c: ditto. * vm.c: ditto. * insnhelper.ci: ditto. * ext/digest/digest.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c (rb_enc_check): check for ASCII-compatibilities.nobu2007-09-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse.y (parser_tokadd_string, parser_parse_string, parser_here_document, parser_yylex): set encoding to US-ASCII. * parse.y (rb_enc_symname_p): check if valid with encoding. * parse.y (rb_intern3): let symbols have encoding. * string.c (rb_str_hash): add encoding index. * string.c (rb_str_comparable, rb_str_equal, rb_str_eql): check if compatible encoding. * string.c (sym_inspect): made encoding aware. * insns.def (opt_eq): compare with encoding. * include/ruby/encoding.h (rb_enc_asciicompat): check if ASCII compatible. * include/ruby/encoding.h (rb_enc_get_index): added prototype. * include/ruby/intern.h (rb_str_comparable, rb_str_equal): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h: declare rb_hash_tbl.akr2007-08-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/ruby/ruby.h (RHash): delay st_table allocation. rename tbl field to ntbl to detect direct reference to the st_table as a compile error. (RHASH_TBL): abstract accessor defined. (RHASH_ITER_LEV): ditto. (RHASH_IFNONE): ditto. (RHASH_SIZE): ditto. (RHASH_EMPTY_P): ditto. * hash.c: delay st_table allocation. * gc.c: replace tbl by ntbl. * array.c: replace direct field accessor by abstract field accessor such as RHASH(hash)->tbl to RHASH_TBL(hash). * marshal.c: ditto. * insns.def: ditto. * ext/iconv/iconv.c: ditto. * ext/json/ext/generator/generator.c: ditto. * ext/json/ext/parser/parser.c: ditto. * ext/syck/rubyext.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c, include/ruby/intern.h: export rb_str_length().ko12007-08-251-4/+4
| | | | | | | | * insns.def: use rb_str_lengt() in opt_length. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c: provide basic features for M17N.matz2007-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse.y: encoding aware parsing. * parse.y (pragma_encoding): encoding specification pragma. * parse.y (rb_intern3): encoding specified symbols. * string.c (rb_str_length): length based on characters. for older behavior, bytesize method added. * string.c (rb_str_index_m): index based on characters. rindex as well. * string.c (succ_char): encoding aware succeeding string. * string.c (rb_str_reverse): reverse based on characters. * string.c (rb_str_inspect): encoding aware string description. * string.c (rb_str_upcase_bang): encoding aware case conversion. downcase, capitalize, swapcase as well. * string.c (rb_str_tr_bang): tr based on characters. delete, squeeze, tr_s, count as well. * string.c (rb_str_split_m): split based on characters. * string.c (rb_str_each_line): encoding aware each_line. * string.c (rb_str_each_char): added. iteration based on characters. * string.c (rb_str_strip_bang): encoding aware whitespace stripping. lstrip, rstrip as well. * string.c (rb_str_justify): encoding aware justifying (ljust, rjust, center). * string.c (str_encoding): get encoding attribute from a string. * re.c (rb_reg_initialize): encoding aware regular expression * sprintf.c (rb_str_format): formatting (i.e. length count) based on characters. * io.c (rb_io_getc): getc to return one-character string. for older behavior, getbyte method added. * ext/stringio/stringio.c (strio_getc): ditto. * io.c (rb_io_ungetc): allow pushing arbitrary string at the current reading point. * ext/stringio/stringio.c (strio_ungetc): ditto. * ext/strscan/strscan.c: encoding support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, insns.def, parse.y: fix massign order. This changeko12007-08-231-45/+5
| | | | | | | | | | | | | causes performance problem. Try vm1_swap benchmark. [ruby-dev:31522] * insns.def, insnhelper.ci: move process body of expandarray insn to vm_expandarray(). * bootstraptest/test_knownbug.rb, bootstraptest/test_massign.rb: move a solved test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (throw): insert a RUBY_VM_CHECK_INTS(). [ruby-dev:31361]ko12007-08-161-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_dump.c (debug_print_pre): fix to show control frame count.ko12007-08-121-5/+3
| | | | | | | | | | | | | | | | * insns.def (opt_call_c_function): fix operand type. * lib/vm/instruction.rb: ditto. * insnhelper.ci (vm_push_frame, vm_pop_frame): fix to show control stack status on if VMDEBUG == 2. * vm.h: add a comment about VMDEBUG. * iseq.c (find_prev_line_no): fix to skip bug report if line is not found. * lib/vm/instruction.rb: fix to use build_string() on source code generators. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.ci, insns.def: move some statements to functions.ko12007-08-061-294/+16
| | | | | | | | * vm.c, vm.h, vm_evalbody.ci: fix include/typedef places. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (getspecial): lfp_svar_get() requires int for specialnobu2007-07-151-0/+1
| | | | | | | global variables. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (opt_div): FIX2NUM may not work for corner cases.matz2007-07-131-1/+1
| | | | | | [ruby-dev:31210] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (opt_succ): use cast to shut a warning up.matz2007-07-131-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (opt_succ): use LONG_MAX as maximum Fixnum VALUE.usa2007-07-121-2/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * range.c (range_max): use FIX2LONG instead of FIX2INT to avoidakr2007-07-121-5/+6
| | | | | | | | | | | | | | RangeError by ((-0x80000001)...(-0x80000001)).max on LP64. * insns.def (opt_plus): use FIX2LONG instead of FIX2INT to avoid RangeError by 0x3fffffffffffffff+1 on LP64. * insns.def (opt_succ): don't use 0x80000000 which assumes 32bit VALUE. use FIX2LONG instead of FIX2INT. [ruby-dev:31190] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * blockinlining.c: remove "yarv" prefix.ko12007-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * array.c, numeric.c: ditto. * insnhelper.ci, insns.def, vm_evalbody.ci: ditto. * yarvcore.c: removed. * yarvcore.h: renamed to core.h. * cont.c, debug.c, error.c, process.c, signal.c : ditto. * ext/probeprofiler/probeprofiler.c: ditto. * id.c, id.h: added. * inits.c: ditto. * compile.c: rename internal functions. * compile.h: fix debug flag. * eval.c, object.c, vm.c: remove ruby_top_self. use rb_vm_top_self() instead. * eval_intern.h, eval_load: ditto. * gc.c: rename yarv_machine_stack_mark() to rb_gc_mark_machine_stack(). * insnhelper.h: remove unused macros. * iseq.c: add iseq_compile() to create iseq object from source string. * proc.c: rename a internal function. * template/insns.inc.tmpl: remove YARV prefix. * thread.c: * vm.c (rb_iseq_eval): added. * vm.c: move some functions from yarvcore.c. * vm_dump.c: fix to remove compiler warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (opt_succ): fixed typo. [ruby-dev:31189]nobu2007-07-121-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, insnhelper.ci: fix svar interface.ko12007-07-101-8/+7
| | | | | | | | | | | | * compile.c (iseq_compile_each), yarvcore.h: fix to use new svar interface for flip flop. * eval.c: ditto. * insns.def: ditto. * include/ruby/intern.h: remove "rb_svar()" declaration. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.ci (vm_yield_setup_args), vm.c, insns.def:ko12007-07-071-1/+1
| | | | | | | | | | fix to pass nil as block parameter to yielded block. [ruby-dev:31147] * bootstraptest/test_block.rb: add a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def: remove unused code.ko12007-07-051-30/+14
| | | | | | | | | | | | * compile.c (compile_massign): fix to invoke to_splat on splat rhs (example: *a = *nil). [ruby-dev:31136] * bootstraptest/test_massign.rb: add tests for above. * compile.c (iseq_compile_each): disable excess optimization. [ruby-dev:31126] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def: fix to invoke nil.to_splat on NODE_ARGSCAT.ko12007-07-051-16/+10
| | | | | | | | | [ruby-dev:31138]. * bootstraptest/test_literal.rb: add tests for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * yarvcore.h: rename rb_control_frame_t#magic to flag.ko12007-07-051-2/+2
| | | | | | | | | | * vm.h: add VM_FRAME_TYPE() and VM_FRAME_FLAG(). * cont.c, insnhelper.ci, insns.def, vm.c, vm_dump.c, vm_evalbody.ci, yarvcore.c: apply above changes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (iseq_compile_each): add break catch point.ko12007-07-051-14/+78
| | | | | | | | | | * insns.def (throw): support correct "break" and "return". this commit achieve that "make test" passes all tests. * vm.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c: rename iseq_translate_direct_threaded_code()ko12007-07-021-2/+4
| | | | | | | | | | | | | to iseq_translate_threaded_code(). * eval_intern.h, yarvcore.h: mv EXEC_EVENT_HOOK() and exec_event_hooks() to yarvcore.h. * insnhelper.ci, vm.c: mv yarv_finish_insn_seq to vm.c. * insns.def (opt_call_c_function): fix to use RESTORE_REGS(). * iseq.c (rb_iseq_build_for_ruby2cext): fix to allocate iseq. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (defineclass): suppress a warning.nobu2007-07-021-20/+20
| | | | | | | | * insns.def (opt_call_c_function): should raise the thrown exception instead of returning it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * yarvcore.h, compile.c, insnhelper.ci, iseq.c, vm.c:ko12007-07-011-1/+1
| | | | | | | | | | | | rename structure names and field names. * insnhelper.h, insns.def: add GET_CONST_INLINE_CACHE(). * iseq.c: add rb_iseq_build_for_ruby2cext(). * yarvcore.h, vm.h: move declaration of rb_insn_func_t to yarvcore.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.h: rename insn_func_type to rb_insn_func_type.ko12007-06-301-11/+11
| | | | | | | | | | * 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
* * vm_evalbody.ci: support OPT_CALL_THREADED_CODE.ko12007-06-271-4/+8
| | | | | | | | | * insns.def, vm.c, vm.h: ditto. * vm.h: add VM_CFP_CNT() and VM_SP_CNT(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (compile_massign), insns.def (expandarray): supportko12007-06-261-46/+51
| | | | | | | | | | postarg with massign (a, *b, c = ...). * bootstraptest/test_massign.rb: add tests for above. * compile.h: fix debug macro names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h: IL32LLP64 support.usa2007-06-261-4/+21
| | | | | | | | | | * bignum.c (bigfixize, rb_cstr_to_inum): ditto. * insns.def (opt_plus, opt_minus, opt_mult): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * cont.c (rb_fiber_s_new): revert initializing VM stack.ko12007-06-261-14/+0
| | | | | | | | | | | | | * yarvcore.c (th_init2): ditto. * vm.c, vm.h: fix to stop using Qundef on VM stack. According to this change, VM stack should not include Qundef value. * insns.def (putundef): removed. * compile.c (iseq_compile_each): ditto. * eval.c (eval): fix spacing. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.ci, vm.c: complete block parameter support.ko12007-06-251-6/+9
| | | | | | | | | | | post arguments, optional arguments, block argument. * compile.c, parse.y: fix {|a|} parameter. * insnshelper.ci, insns.def: revert caller_setup_args() option (need_block_check) parameter. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.h: add RUBY_ prefix to debug macros.ko12007-06-251-3/+3
| | | | | | | | | | | | * cont.c, proc.c, yarvcore.c, * gc.c: define ruby_gc_debug_indent variable to debug mark/free. * vm.c, insnhelper.ci: rename some functions to vm_* or rb_vm_*. move some functions, definitions, declarations to suitable files. * eval.c, yarvcore.h, eval_error.ci, insnhelper.ci: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.ci (caller_setup_args): add need_block_check option.ko12007-06-241-4/+4
| | | | | | | | | * insns.def: ditto. * yarvcore.h: add GetCoreDataFromValue(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (invokesuper): fix error message.ko12007-06-241-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c: some refactoring.ko12007-06-241-27/+27
| | | | | | | | | | | | | | * rename th_* to vm_*. * remove unused variables functions. * add prototypes. * blockinlining.c, compile.c, cont.c, eval.c, eval_intern.h, eval_jump.h, eval_load.c, inits.c, insns.def, iseq.c, parse.y, proc.c, process.c, signal.c, thread.c, vm.c, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insn_send.ci: removed.ko12007-06-241-115/+121
| | | | | | | | | | | | | | | | * common.mk: ditto. * vm.c (vm_call_bmethod), isnsn.def: added. fix to use this function instead of using goto. * vm.c (vm_call_bmethod): renamed from th_invoke_bmethod(). * vm.c (vm_method_missing): renamed from eval_methdo_missing(). * vm_evalbody.ci: remove tmp_* variables. * insnhelper.h: add some macros. * insns.def: forbid zsuper from method defined by define_method(). * test/ruby/test_super.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_macro.def: removed.ko12007-06-241-129/+1
| | | | | | | | | | | | * insn_send.ci: added. this file includes send instruction body. * common.mk: ditto. * insns.def: ditto. * tool/insns2vm.rb: ditto. * vm.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def, vm.c: add/fix stack overflow check.ko12007-06-241-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.h: change CHECK_STACK_OVERFLOW() to throw exception.ko12007-06-241-23/+4
| | | | | | | | | | | * vm.c (caller_setup_arg), vm_macro.def: remove macro_eval_setup_send_arguments and add caller_setup_arg(). * insns.def: ditto. * bootstraptest/test_method.rb: add splat arg tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def(setconstant, toregexp): fix to mark object correctly.ko12007-06-151-2/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (invokeblock): fix of splat argument.ko12007-06-061-1/+3
| | | | | | | | (splat same as normal method dispatch) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def: fixed indentation.usa2007-06-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.h, insns.def (DEC_SP): shoudn't use unary minus operatorusa2007-06-051-2/+2
| | | | | | | | | in pointer operation. some compilers (such as VC++8 x64) cannot deal it with expected way. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (invokeblock): check block is created by lambdako12007-06-051-2/+3
| | | | | | | | | or Proc.new. * vm.c (block_proc_is_lambda): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insnhelper.h (INC_SP): shouldn't cast ``x'' to unsigned type becauseusa2007-06-011-3/+3
| | | | | | | | | | | | it might be a negative value. * insnhelper.h, insns.def: shoudn't use unary minus operator in index operator. some compilers (such as VC++8 x64) cannot deal it with expected way. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, vm_macro.def: support tail call optimizationko12007-05-211-0/+70
| | | | | | | | | | | | | (on default, this feature is not enabled). * iseq.c, compile.c, vm_opts.h: add "tailcall_optimization" option. * sample/test.rb (test_ok): fix to adjust tailcall stack layout. * insns.def, vm.c, compile.c, yarvcore.c, yarvcore.h: add opt_gt, opt_le instructions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e