363
#ifdef USE_INSN_STACK_INCREASE
365
365
insn_stack_increase(int depth, int insn, VALUE *opes)
377
case BIN(getspecial):{
380
case BIN(setspecial):{
383
case BIN(getdynamic):{
386
case BIN(setdynamic):{
389
case BIN(getinstancevariable):{
392
case BIN(setinstancevariable):{
395
case BIN(getclassvariable):{
398
case BIN(setclassvariable):{
401
case BIN(getconstant):{
404
case BIN(setconstant):{
407
case BIN(getglobal):{
410
case BIN(setglobal):{
422
case BIN(putobject):{
425
case BIN(putstring):{
428
case BIN(concatstrings):{
430
unsigned long num = FIX2INT(opes[0]);
442
unsigned long num = FIX2INT(opes[0]);
449
case BIN(expandarray):{
377
case BIN(getspecial):{
380
case BIN(setspecial):{
383
case BIN(getdynamic):{
386
case BIN(setdynamic):{
389
case BIN(getinstancevariable):{
392
case BIN(setinstancevariable):{
395
case BIN(getclassvariable):{
398
case BIN(setclassvariable):{
401
case BIN(getconstant):{
404
case BIN(setconstant):{
407
case BIN(getglobal):{
410
case BIN(setglobal):{
419
case BIN(putobject):{
422
case BIN(putstring):{
425
case BIN(concatstrings):{
427
unsigned long num = FIX2INT(opes[0]);
439
unsigned long num = FIX2INT(opes[0]);
446
case BIN(expandarray):{
451
448
unsigned long num = FIX2INT(opes[0]);
452
449
unsigned long flag = FIX2INT(opes[1]);
453
inc += (num > 0) ? num - 1 + (flag ? 1 : 0) : num + 1 - (flag ? 1 : 0);;
450
inc += flag == 0x02 ? num : ((num > 0) ? num - 1 + (flag ? 1 : 0) : num + 1 - (flag ? 1 : 0));;
454
451
return depth + inc;
456
case BIN(concatarray):{
459
case BIN(splatarray):{
462
case BIN(checkincludearray):{
453
case BIN(concatarray):{
456
case BIN(splatarray):{
459
case BIN(checkincludearray):{
467
464
unsigned long num = FIX2INT(opes[0]);
485
unsigned long n = FIX2INT(opes[0]);
499
unsigned long n = FIX2INT(opes[0]);
505
unsigned long n = FIX2INT(opes[0]);
509
case BIN(emptstack):{
514
case BIN(definemethod):{
532
case BIN(defineclass):{
482
unsigned long n = FIX2INT(opes[0]);
496
unsigned long n = FIX2INT(opes[0]);
502
unsigned long n = FIX2INT(opes[0]);
506
case BIN(emptstack):{
511
case BIN(definemethod):{
529
case BIN(defineclass):{
537
534
unsigned long op_argc = FIX2INT(opes[1]);
538
535
unsigned long op_flag = FIX2INT(opes[3]);
539
inc += - (op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
536
inc += - (op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
540
537
return depth + inc;
542
case BIN(invokesuper):{
539
case BIN(invokesuper):{
544
541
unsigned long op_argc = FIX2INT(opes[0]);
545
unsigned long flag = FIX2INT(opes[2]);
542
unsigned long op_flag = FIX2INT(opes[2]);
547
544
return depth + inc;
549
case BIN(invokeblock):{
546
case BIN(invokeblock):{
551
548
unsigned long num = FIX2INT(opes[0]);
552
549
unsigned long flag = FIX2INT(opes[1]);
571
case BIN(branchunless):{
574
case BIN(getinlinecache):{
577
case BIN(onceinlinecache):{
580
case BIN(setinlinecache):{
583
case BIN(opt_case_dispatch):{
588
case BIN(opt_checkenv):{
594
case BIN(opt_minus):{
630
case BIN(opt_length):{
636
case BIN(opt_regexpmatch1):{
639
case BIN(opt_regexpmatch2):{
642
case BIN(opt_call_native_compiled):{
568
case BIN(branchunless):{
571
case BIN(getinlinecache):{
574
case BIN(onceinlinecache):{
577
case BIN(setinlinecache):{
580
case BIN(opt_case_dispatch):{
585
case BIN(opt_checkenv):{
591
case BIN(opt_minus):{
627
case BIN(opt_length):{
633
case BIN(opt_regexpmatch1):{
636
case BIN(opt_regexpmatch2):{
639
case BIN(opt_call_c_function):{
653
650
rb_bug("insn_sp_increase: unreachable");
658
656
/* some utilities */