summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-09 05:33:54 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-09 05:33:54 +0000
commit7ea3edc409dc6d383df9bc10d0034a6ecddb84dc (patch)
treecafccae4237491cdb82afeaa1e07dbe330907fab /insns.def
parent4be0c562a4b3e1bc6f185cf8fbd636b9e8ebb7f4 (diff)
* vm_core.h (rb_call_info_t): add new type `rb_call_inf_t'.
This data structure contains information including inline method cache. After that, `struct iseq_inline_cache_entry' does not need to contain inline cache for method invocation. Other information will be added to this data structure. * vm_core.h (rb_iseq_t): add `callinfo_entries' and `callinfo_size' members to `rb_iseq_t'. * insns.def, compile.c: Use CALL_INFO instead of IC. * tool/instruction.rb: support CALL_INFO as operand type. * vm_insnhelper.c, vm_insnhelper.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def50
1 files changed, 25 insertions, 25 deletions
diff --git a/insns.def b/insns.def
index 0afc2f799a..ae1998af63 100644
--- a/insns.def
+++ b/insns.def
@@ -963,7 +963,7 @@ defineclass
*/
DEFINE_INSN
send
-(ID op_id, rb_num_t op_argc, ISEQ blockiseq, rb_num_t op_flag, IC ic)
+(ID op_id, rb_num_t op_argc, ISEQ blockiseq, rb_num_t op_flag, CALL_INFO ci)
(...)
(VALUE val) // inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));
{
@@ -978,7 +978,7 @@ send
/* get receiver */
recv = TOPN(num);
klass = CLASS_OF(recv);
- me = vm_method_search(id, klass, ic, &defined_class);
+ me = vm_method_search(id, klass, ci, &defined_class);
CALL_METHOD(num, blockptr, flag, id, me, recv, defined_class);
}
@@ -1286,7 +1286,7 @@ opt_case_dispatch
*/
DEFINE_INSN
opt_plus
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1349,7 +1349,7 @@ opt_plus
*/
DEFINE_INSN
opt_minus
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1397,7 +1397,7 @@ opt_minus
*/
DEFINE_INSN
opt_mult
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1450,7 +1450,7 @@ opt_mult
*/
DEFINE_INSN
opt_div
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1513,7 +1513,7 @@ opt_div
*/
DEFINE_INSN
opt_mod
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1577,11 +1577,11 @@ opt_mod
*/
DEFINE_INSN
opt_eq
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
- val = opt_eq_func(recv, obj, ic);
+ val = opt_eq_func(recv, obj, ci);
if (val == Qundef) {
/* other */
@@ -1598,16 +1598,16 @@ opt_eq
*/
DEFINE_INSN
opt_neq
-(IC ic, IC ic_eq)
+(CALL_INFO ci, CALL_INFO ci_eq)
(VALUE recv, VALUE obj)
(VALUE val)
{
extern VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2);
- const rb_method_entry_t *me = vm_method_search(idNeq, CLASS_OF(recv), ic, 0);
+ const rb_method_entry_t *me = vm_method_search(idNeq, CLASS_OF(recv), ci, 0);
val = Qundef;
if (check_cfunc(me, rb_obj_not_equal)) {
- val = opt_eq_func(recv, obj, ic_eq);
+ val = opt_eq_func(recv, obj, ci_eq);
if (val != Qundef) {
val = RTEST(val) ? Qfalse : Qtrue;
@@ -1629,7 +1629,7 @@ opt_neq
*/
DEFINE_INSN
opt_lt
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1673,7 +1673,7 @@ opt_lt
*/
DEFINE_INSN
opt_le
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1708,7 +1708,7 @@ opt_le
*/
DEFINE_INSN
opt_gt
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1752,7 +1752,7 @@ opt_gt
*/
DEFINE_INSN
opt_ge
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1786,7 +1786,7 @@ opt_ge
*/
DEFINE_INSN
opt_ltlt
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1818,7 +1818,7 @@ opt_ltlt
*/
DEFINE_INSN
opt_aref
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj)
(VALUE val)
{
@@ -1848,7 +1848,7 @@ opt_aref
*/
DEFINE_INSN
opt_aset
-(IC ic)
+(CALL_INFO ci)
(VALUE recv, VALUE obj, VALUE set)
(VALUE val)
{
@@ -1881,7 +1881,7 @@ opt_aset
*/
DEFINE_INSN
opt_length
-(IC ic)
+(CALL_INFO ci)
(VALUE recv)
(VALUE val)
{
@@ -1916,7 +1916,7 @@ opt_length
*/
DEFINE_INSN
opt_size
-(IC ic)
+(CALL_INFO ci)
(VALUE recv)
(VALUE val)
{
@@ -1951,7 +1951,7 @@ opt_size
*/
DEFINE_INSN
opt_empty_p
-(IC ic)
+(CALL_INFO ci)
(VALUE recv)
(VALUE val)
{
@@ -1989,7 +1989,7 @@ opt_empty_p
*/
DEFINE_INSN
opt_succ
-(IC ic)
+(CALL_INFO ci)
(VALUE recv)
(VALUE val)
{
@@ -2036,12 +2036,12 @@ opt_succ
*/
DEFINE_INSN
opt_not
-(IC ic)
+(CALL_INFO ci)
(VALUE recv)
(VALUE val)
{
extern VALUE rb_obj_not(VALUE obj);
- const rb_method_entry_t *me = vm_method_search(idNot, CLASS_OF(recv), ic, 0);
+ const rb_method_entry_t *me = vm_method_search(idNot, CLASS_OF(recv), ci, 0);
if (check_cfunc(me, rb_obj_not)) {
val = RTEST(recv) ? Qfalse : Qtrue;