debase-ruby_core_source 0.9.9 → 0.9.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ccan/list/list.h +28 -166
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/constant.h +3 -10
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/eval_intern.h +49 -89
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/gc.h +1 -8
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/id.h +5 -15
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/insns.inc +107 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/insns_info.inc +45 -89
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/internal.h +164 -666
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/iseq.h +158 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/method.h +144 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/node.h +42 -18
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/node_name.inc +6 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/opt_sc.inc +0 -40
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/optunifs.inc +0 -5
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/parse.h +8 -28
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/probes_helper.h +67 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regenc.h +16 -16
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regint.h +10 -33
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regparse.h +1 -5
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/revision.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ruby_atomic.h +5 -68
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/symbol.h +13 -33
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/thread_pthread.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/transcode_data.h +7 -23
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/version.h +10 -31
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm.inc +497 -542
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_core.h +305 -784
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_insnhelper.h +56 -50
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vm_opts.h +7 -8
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vmtc.inc +0 -5
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/constant.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/eval_intern.h +3 -4
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/gc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/id.h +0 -9
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns.inc +46 -48
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns_info.inc +0 -20
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/internal.h +58 -290
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/iseq.h +15 -18
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/method.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/node.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/node_name.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/opt_sc.inc +0 -16
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/optunifs.inc +0 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/parse.h +8 -27
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regenc.h +14 -14
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regint.h +0 -8
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/regparse.h +0 -0
- data/lib/debase/ruby_core_source/ruby-2.3.5-p376/revision.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ruby_atomic.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/symbol.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/thread_pthread.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/version.h +9 -27
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm.inc +255 -264
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_call_iseq_optimized.inc +5 -5
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_core.h +37 -28
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_insnhelper.h +32 -16
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vmtc.inc +0 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/eval_intern.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/gc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns_info.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/internal.h +116 -51
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/iseq.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/method.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node_name.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/opt_sc.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/optunifs.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/parse.h +8 -27
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regenc.h +79 -67
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regint.h +187 -244
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/regparse.h +30 -27
- data/lib/debase/ruby_core_source/ruby-2.4.2-p198/revision.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/ruby_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ruby_atomic.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/thread_pthread.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/version.h +6 -6
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm.inc +37 -34
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_call_iseq_optimized.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_core.h +9 -7
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_insnhelper.h +30 -14
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/vmtc.inc +0 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +138 -143
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/method.h +0 -213
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/ruby_assert.h +0 -54
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/encindex.h +0 -67
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/id_table.h +0 -31
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/insns.inc +0 -112
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/iseq.h +0 -252
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/probes_helper.h +0 -43
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/ruby_assert.h +0 -54
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/vm_call_iseq_optimized.inc +0 -212
@@ -57,10 +57,7 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)
|
|
57
57
|
#define RUBY_GC_INFO if(0)printf
|
58
58
|
#endif
|
59
59
|
|
60
|
-
#define RUBY_MARK_UNLESS_NULL(ptr)
|
61
|
-
VALUE markobj = (ptr); \
|
62
|
-
if (RTEST(markobj)) {rb_gc_mark(markobj);} \
|
63
|
-
} while (0)
|
60
|
+
#define RUBY_MARK_UNLESS_NULL(ptr) if(RTEST(ptr)){rb_gc_mark(ptr);}
|
64
61
|
#define RUBY_FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);(ptr)=NULL;}
|
65
62
|
|
66
63
|
#if STACK_GROW_DIRECTION > 0
|
@@ -86,10 +83,6 @@ int ruby_get_stack_grow_direction(volatile VALUE *addr);
|
|
86
83
|
#endif
|
87
84
|
#define IS_STACK_DIR_UPPER() STACK_DIR_UPPER(1,0)
|
88
85
|
|
89
|
-
const char *rb_obj_info(VALUE obj);
|
90
|
-
const char *rb_raw_obj_info(char *buff, const int buff_size, VALUE obj);
|
91
|
-
void rb_obj_info_dump(VALUE obj);
|
92
|
-
|
93
86
|
RUBY_SYMBOL_EXPORT_BEGIN
|
94
87
|
|
95
88
|
/* exports for objspace module */
|
@@ -39,6 +39,8 @@ enum ruby_id_types {
|
|
39
39
|
#define ID_JUNK RUBY_ID_JUNK
|
40
40
|
#define ID_INTERNAL RUBY_ID_INTERNAL
|
41
41
|
|
42
|
+
#define ID2ATTRSET(id) (((id)&~ID_SCOPE_MASK)|ID_ATTRSET)
|
43
|
+
|
42
44
|
#define symIFUNC ID2SYM(idIFUNC)
|
43
45
|
#define symCFUNC ID2SYM(idCFUNC)
|
44
46
|
|
@@ -64,7 +66,6 @@ enum ruby_id_types {
|
|
64
66
|
#define RUBY_TOKEN_COLON3 147
|
65
67
|
#define RUBY_TOKEN_ANDOP 148
|
66
68
|
#define RUBY_TOKEN_OROP 149
|
67
|
-
#define RUBY_TOKEN_ANDDOT 150
|
68
69
|
#define RUBY_TOKEN(t) RUBY_TOKEN_##t
|
69
70
|
|
70
71
|
enum ruby_method_ids {
|
@@ -79,11 +80,11 @@ enum ruby_method_ids {
|
|
79
80
|
idMULT = '*',
|
80
81
|
idDIV = '/',
|
81
82
|
idMOD = '%',
|
82
|
-
idLTLT = RUBY_TOKEN(LSHFT),
|
83
|
-
idGTGT = RUBY_TOKEN(RSHFT),
|
84
83
|
idLT = '<',
|
84
|
+
idLTLT = RUBY_TOKEN(LSHFT),
|
85
85
|
idLE = RUBY_TOKEN(LEQ),
|
86
86
|
idGT = '>',
|
87
|
+
idGTGT = RUBY_TOKEN(RSHFT),
|
87
88
|
idGE = RUBY_TOKEN(GEQ),
|
88
89
|
idEq = RUBY_TOKEN(EQ),
|
89
90
|
idEqq = RUBY_TOKEN(EQQ),
|
@@ -97,8 +98,7 @@ enum ruby_method_ids {
|
|
97
98
|
idCOLON2 = RUBY_TOKEN(COLON2),
|
98
99
|
idANDOP = RUBY_TOKEN(ANDOP),
|
99
100
|
idOROP = RUBY_TOKEN(OROP),
|
100
|
-
|
101
|
-
tPRESERVED_ID_BEGIN = 150,
|
101
|
+
tPRESERVED_ID_BEGIN = 149,
|
102
102
|
idNULL,
|
103
103
|
idEmptyP,
|
104
104
|
idEqlP,
|
@@ -116,10 +116,7 @@ enum ruby_method_ids {
|
|
116
116
|
id_core_hash_merge_ary,
|
117
117
|
id_core_hash_merge_ptr,
|
118
118
|
id_core_hash_merge_kwd,
|
119
|
-
id_debug_created_info,
|
120
119
|
tPRESERVED_ID_END,
|
121
|
-
tMax,
|
122
|
-
tMin,
|
123
120
|
tFreeze,
|
124
121
|
tInspect,
|
125
122
|
tIntern,
|
@@ -162,12 +159,8 @@ enum ruby_method_ids {
|
|
162
159
|
tMesg,
|
163
160
|
tException,
|
164
161
|
tUScore,
|
165
|
-
tLASTLINE,
|
166
|
-
tBACKREF,
|
167
162
|
tNEXT_ID,
|
168
163
|
#define TOKEN2LOCALID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL|ID_STATIC_SYM)
|
169
|
-
TOKEN2LOCALID(Max),
|
170
|
-
TOKEN2LOCALID(Min),
|
171
164
|
TOKEN2LOCALID(Freeze),
|
172
165
|
TOKEN2LOCALID(Inspect),
|
173
166
|
TOKEN2LOCALID(Intern),
|
@@ -210,9 +203,6 @@ enum ruby_method_ids {
|
|
210
203
|
TOKEN2LOCALID(Mesg),
|
211
204
|
TOKEN2LOCALID(Exception),
|
212
205
|
TOKEN2LOCALID(UScore),
|
213
|
-
#define TOKEN2GLOBALID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_GLOBAL|ID_STATIC_SYM)
|
214
|
-
TOKEN2GLOBALID(LASTLINE),
|
215
|
-
TOKEN2GLOBALID(BACKREF),
|
216
206
|
tLAST_OP_ID = tPRESERVED_ID_END-1,
|
217
207
|
idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
|
218
208
|
};
|
@@ -0,0 +1,107 @@
|
|
1
|
+
/** -*-c-*-
|
2
|
+
This file contains YARV instructions list.
|
3
|
+
|
4
|
+
----
|
5
|
+
This file is auto generated by insns2vm.rb
|
6
|
+
DO NOT TOUCH!
|
7
|
+
|
8
|
+
If you want to fix something, you must edit 'template/insns.inc.tmpl'
|
9
|
+
or tool/insns2vm.rb
|
10
|
+
*/
|
11
|
+
|
12
|
+
|
13
|
+
/* BIN : Basic Instruction Name */
|
14
|
+
#define BIN(n) YARVINSN_##n
|
15
|
+
|
16
|
+
enum ruby_vminsn_type {
|
17
|
+
BIN(nop) = 0,
|
18
|
+
BIN(getlocal) = 1,
|
19
|
+
BIN(setlocal) = 2,
|
20
|
+
BIN(getspecial) = 3,
|
21
|
+
BIN(setspecial) = 4,
|
22
|
+
BIN(getinstancevariable) = 5,
|
23
|
+
BIN(setinstancevariable) = 6,
|
24
|
+
BIN(getclassvariable) = 7,
|
25
|
+
BIN(setclassvariable) = 8,
|
26
|
+
BIN(getconstant) = 9,
|
27
|
+
BIN(setconstant) = 10,
|
28
|
+
BIN(getglobal) = 11,
|
29
|
+
BIN(setglobal) = 12,
|
30
|
+
BIN(putnil) = 13,
|
31
|
+
BIN(putself) = 14,
|
32
|
+
BIN(putobject) = 15,
|
33
|
+
BIN(putspecialobject) = 16,
|
34
|
+
BIN(putiseq) = 17,
|
35
|
+
BIN(putstring) = 18,
|
36
|
+
BIN(concatstrings) = 19,
|
37
|
+
BIN(tostring) = 20,
|
38
|
+
BIN(toregexp) = 21,
|
39
|
+
BIN(newarray) = 22,
|
40
|
+
BIN(duparray) = 23,
|
41
|
+
BIN(expandarray) = 24,
|
42
|
+
BIN(concatarray) = 25,
|
43
|
+
BIN(splatarray) = 26,
|
44
|
+
BIN(newhash) = 27,
|
45
|
+
BIN(newrange) = 28,
|
46
|
+
BIN(pop) = 29,
|
47
|
+
BIN(dup) = 30,
|
48
|
+
BIN(dupn) = 31,
|
49
|
+
BIN(swap) = 32,
|
50
|
+
BIN(reput) = 33,
|
51
|
+
BIN(topn) = 34,
|
52
|
+
BIN(setn) = 35,
|
53
|
+
BIN(adjuststack) = 36,
|
54
|
+
BIN(defined) = 37,
|
55
|
+
BIN(checkmatch) = 38,
|
56
|
+
BIN(checkkeyword) = 39,
|
57
|
+
BIN(trace) = 40,
|
58
|
+
BIN(defineclass) = 41,
|
59
|
+
BIN(send) = 42,
|
60
|
+
BIN(opt_str_freeze) = 43,
|
61
|
+
BIN(opt_send_without_block) = 44,
|
62
|
+
BIN(invokesuper) = 45,
|
63
|
+
BIN(invokeblock) = 46,
|
64
|
+
BIN(leave) = 47,
|
65
|
+
BIN(throw) = 48,
|
66
|
+
BIN(jump) = 49,
|
67
|
+
BIN(branchif) = 50,
|
68
|
+
BIN(branchunless) = 51,
|
69
|
+
BIN(getinlinecache) = 52,
|
70
|
+
BIN(setinlinecache) = 53,
|
71
|
+
BIN(once) = 54,
|
72
|
+
BIN(opt_case_dispatch) = 55,
|
73
|
+
BIN(opt_plus) = 56,
|
74
|
+
BIN(opt_minus) = 57,
|
75
|
+
BIN(opt_mult) = 58,
|
76
|
+
BIN(opt_div) = 59,
|
77
|
+
BIN(opt_mod) = 60,
|
78
|
+
BIN(opt_eq) = 61,
|
79
|
+
BIN(opt_neq) = 62,
|
80
|
+
BIN(opt_lt) = 63,
|
81
|
+
BIN(opt_le) = 64,
|
82
|
+
BIN(opt_gt) = 65,
|
83
|
+
BIN(opt_ge) = 66,
|
84
|
+
BIN(opt_ltlt) = 67,
|
85
|
+
BIN(opt_aref) = 68,
|
86
|
+
BIN(opt_aset) = 69,
|
87
|
+
BIN(opt_aset_with) = 70,
|
88
|
+
BIN(opt_aref_with) = 71,
|
89
|
+
BIN(opt_length) = 72,
|
90
|
+
BIN(opt_size) = 73,
|
91
|
+
BIN(opt_empty_p) = 74,
|
92
|
+
BIN(opt_succ) = 75,
|
93
|
+
BIN(opt_not) = 76,
|
94
|
+
BIN(opt_regexpmatch1) = 77,
|
95
|
+
BIN(opt_regexpmatch2) = 78,
|
96
|
+
BIN(opt_call_c_function) = 79,
|
97
|
+
BIN(bitblt) = 80,
|
98
|
+
BIN(answer) = 81,
|
99
|
+
BIN(getlocal_OP__WC__0) = 82,
|
100
|
+
BIN(getlocal_OP__WC__1) = 83,
|
101
|
+
BIN(setlocal_OP__WC__0) = 84,
|
102
|
+
BIN(setlocal_OP__WC__1) = 85,
|
103
|
+
BIN(putobject_OP_INT2FIX_O_0_C_) = 86,
|
104
|
+
BIN(putobject_OP_INT2FIX_O_1_C_) = 87,
|
105
|
+
VM_INSTRUCTION_SIZE = 88
|
106
|
+
};
|
107
|
+
|
@@ -17,7 +17,6 @@
|
|
17
17
|
#define TS_GENTRY 'G'
|
18
18
|
#define TS_IC 'K'
|
19
19
|
#define TS_CALLINFO 'C'
|
20
|
-
#define TS_CALLCACHE 'E'
|
21
20
|
#define TS_CDHASH 'H'
|
22
21
|
#define TS_ISEQ 'S'
|
23
22
|
#define TS_VARIABLE '.'
|
@@ -45,7 +44,6 @@ static const char *const insn_name_info[] = {
|
|
45
44
|
"putstring",
|
46
45
|
"concatstrings",
|
47
46
|
"tostring",
|
48
|
-
"freezestring",
|
49
47
|
"toregexp",
|
50
48
|
"newarray",
|
51
49
|
"duparray",
|
@@ -58,7 +56,6 @@ static const char *const insn_name_info[] = {
|
|
58
56
|
"dup",
|
59
57
|
"dupn",
|
60
58
|
"swap",
|
61
|
-
"reverse",
|
62
59
|
"reput",
|
63
60
|
"topn",
|
64
61
|
"setn",
|
@@ -70,8 +67,6 @@ static const char *const insn_name_info[] = {
|
|
70
67
|
"defineclass",
|
71
68
|
"send",
|
72
69
|
"opt_str_freeze",
|
73
|
-
"opt_newarray_max",
|
74
|
-
"opt_newarray_min",
|
75
70
|
"opt_send_without_block",
|
76
71
|
"invokesuper",
|
77
72
|
"invokeblock",
|
@@ -80,7 +75,6 @@ static const char *const insn_name_info[] = {
|
|
80
75
|
"jump",
|
81
76
|
"branchif",
|
82
77
|
"branchunless",
|
83
|
-
"branchnil",
|
84
78
|
"getinlinecache",
|
85
79
|
"setinlinecache",
|
86
80
|
"once",
|
@@ -142,7 +136,6 @@ static const char *const insn_operand_info[] = {
|
|
142
136
|
"V",
|
143
137
|
"N",
|
144
138
|
"",
|
145
|
-
"V",
|
146
139
|
"NN",
|
147
140
|
"N",
|
148
141
|
"V",
|
@@ -155,7 +148,6 @@ static const char *const insn_operand_info[] = {
|
|
155
148
|
"",
|
156
149
|
"N",
|
157
150
|
"",
|
158
|
-
"N",
|
159
151
|
"",
|
160
152
|
"N",
|
161
153
|
"N",
|
@@ -165,46 +157,43 @@ static const char *const insn_operand_info[] = {
|
|
165
157
|
"LN",
|
166
158
|
"N",
|
167
159
|
"ISN",
|
168
|
-
"
|
160
|
+
"C",
|
169
161
|
"V",
|
170
|
-
"
|
171
|
-
"
|
172
|
-
"CE",
|
173
|
-
"CES",
|
162
|
+
"C",
|
163
|
+
"C",
|
174
164
|
"C",
|
175
165
|
"",
|
176
166
|
"N",
|
177
167
|
"O",
|
178
168
|
"O",
|
179
169
|
"O",
|
180
|
-
"O",
|
181
170
|
"OK",
|
182
171
|
"K",
|
183
172
|
"SK",
|
184
173
|
"HO",
|
185
|
-
"
|
186
|
-
"
|
187
|
-
"
|
188
|
-
"
|
189
|
-
"
|
190
|
-
"
|
191
|
-
"
|
192
|
-
"
|
193
|
-
"
|
194
|
-
"
|
195
|
-
"
|
196
|
-
"
|
197
|
-
"
|
198
|
-
"
|
199
|
-
"
|
200
|
-
"
|
201
|
-
"
|
202
|
-
"
|
203
|
-
"
|
204
|
-
"
|
205
|
-
"
|
174
|
+
"C",
|
175
|
+
"C",
|
176
|
+
"C",
|
177
|
+
"C",
|
178
|
+
"C",
|
179
|
+
"C",
|
180
|
+
"CC",
|
181
|
+
"C",
|
182
|
+
"C",
|
183
|
+
"C",
|
184
|
+
"C",
|
185
|
+
"C",
|
186
|
+
"C",
|
187
|
+
"C",
|
188
|
+
"CV",
|
189
|
+
"CV",
|
190
|
+
"C",
|
191
|
+
"C",
|
192
|
+
"C",
|
193
|
+
"C",
|
194
|
+
"C",
|
206
195
|
"V",
|
207
|
-
"
|
196
|
+
"C",
|
208
197
|
"F",
|
209
198
|
"",
|
210
199
|
"",
|
@@ -239,7 +228,6 @@ static const int insn_len_info[] = {
|
|
239
228
|
2,
|
240
229
|
2,
|
241
230
|
1,
|
242
|
-
2,
|
243
231
|
3,
|
244
232
|
2,
|
245
233
|
2,
|
@@ -252,7 +240,6 @@ static const int insn_len_info[] = {
|
|
252
240
|
1,
|
253
241
|
2,
|
254
242
|
1,
|
255
|
-
2,
|
256
243
|
1,
|
257
244
|
2,
|
258
245
|
2,
|
@@ -262,15 +249,12 @@ static const int insn_len_info[] = {
|
|
262
249
|
3,
|
263
250
|
2,
|
264
251
|
4,
|
265
|
-
4,
|
266
252
|
2,
|
267
253
|
2,
|
268
254
|
2,
|
269
|
-
3,
|
270
|
-
4,
|
271
255
|
2,
|
272
|
-
1,
|
273
256
|
2,
|
257
|
+
1,
|
274
258
|
2,
|
275
259
|
2,
|
276
260
|
2,
|
@@ -279,29 +263,29 @@ static const int insn_len_info[] = {
|
|
279
263
|
2,
|
280
264
|
3,
|
281
265
|
3,
|
266
|
+
2,
|
267
|
+
2,
|
268
|
+
2,
|
269
|
+
2,
|
270
|
+
2,
|
271
|
+
2,
|
282
272
|
3,
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
3,
|
291
|
-
3,
|
292
|
-
3,
|
293
|
-
3,
|
294
|
-
3,
|
295
|
-
3,
|
296
|
-
4,
|
297
|
-
4,
|
298
|
-
3,
|
299
|
-
3,
|
300
|
-
3,
|
273
|
+
2,
|
274
|
+
2,
|
275
|
+
2,
|
276
|
+
2,
|
277
|
+
2,
|
278
|
+
2,
|
279
|
+
2,
|
301
280
|
3,
|
302
281
|
3,
|
303
282
|
2,
|
304
|
-
|
283
|
+
2,
|
284
|
+
2,
|
285
|
+
2,
|
286
|
+
2,
|
287
|
+
2,
|
288
|
+
2,
|
305
289
|
2,
|
306
290
|
1,
|
307
291
|
1,
|
@@ -345,7 +329,6 @@ static const int insn_stack_push_num_info[] = {
|
|
345
329
|
1,
|
346
330
|
1,
|
347
331
|
1,
|
348
|
-
1,
|
349
332
|
0,
|
350
333
|
2,
|
351
334
|
1,
|
@@ -357,7 +340,6 @@ static const int insn_stack_push_num_info[] = {
|
|
357
340
|
1,
|
358
341
|
1,
|
359
342
|
1,
|
360
|
-
1,
|
361
343
|
0,
|
362
344
|
1,
|
363
345
|
1,
|
@@ -367,9 +349,6 @@ static const int insn_stack_push_num_info[] = {
|
|
367
349
|
1,
|
368
350
|
1,
|
369
351
|
1,
|
370
|
-
1,
|
371
|
-
1,
|
372
|
-
0,
|
373
352
|
0,
|
374
353
|
0,
|
375
354
|
0,
|
@@ -484,9 +463,6 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
|
|
484
463
|
case BIN(tostring):{
|
485
464
|
return depth + 0;
|
486
465
|
}
|
487
|
-
case BIN(freezestring):{
|
488
|
-
return depth + 0;
|
489
|
-
}
|
490
466
|
case BIN(toregexp):{
|
491
467
|
int inc = 0;
|
492
468
|
int cnt = FIX2INT(opes[1]);
|
@@ -539,11 +515,6 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
|
|
539
515
|
case BIN(swap):{
|
540
516
|
return depth + 0;
|
541
517
|
}
|
542
|
-
case BIN(reverse):{
|
543
|
-
int inc = 0;
|
544
|
-
inc += 0;;
|
545
|
-
return depth + inc;
|
546
|
-
}
|
547
518
|
case BIN(reput):{
|
548
519
|
int inc = 0;
|
549
520
|
inc += 0;;
|
@@ -589,18 +560,6 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
|
|
589
560
|
case BIN(opt_str_freeze):{
|
590
561
|
return depth + 1;
|
591
562
|
}
|
592
|
-
case BIN(opt_newarray_max):{
|
593
|
-
int inc = 0;
|
594
|
-
int num = FIX2INT(opes[0]);
|
595
|
-
inc += 1 - num;;
|
596
|
-
return depth + inc;
|
597
|
-
}
|
598
|
-
case BIN(opt_newarray_min):{
|
599
|
-
int inc = 0;
|
600
|
-
int num = FIX2INT(opes[0]);
|
601
|
-
inc += 1 - num;;
|
602
|
-
return depth + inc;
|
603
|
-
}
|
604
563
|
case BIN(opt_send_without_block):{
|
605
564
|
int inc = 0;
|
606
565
|
CALL_INFO ci = (CALL_INFO)(opes[0]);
|
@@ -634,9 +593,6 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
|
|
634
593
|
case BIN(branchunless):{
|
635
594
|
return depth + -1;
|
636
595
|
}
|
637
|
-
case BIN(branchnil):{
|
638
|
-
return depth + -1;
|
639
|
-
}
|
640
596
|
case BIN(getinlinecache):{
|
641
597
|
return depth + 1;
|
642
598
|
}
|