Module: CodeTools::GeneratorMethods
- Included in:
- Generator
- Defined in:
- lib/rubinius/code/compiler/generator_methods.rb
Instance Method Summary collapse
- #a_equal(arg1, arg2) ⇒ Object
- #a_function(arg1, arg2) ⇒ Object
- #a_greater(arg1, arg2) ⇒ Object
- #a_greater_equal(arg1, arg2) ⇒ Object
- #a_instance(arg1, arg2) ⇒ Object
- #a_kind(arg1, arg2) ⇒ Object
- #a_less(arg1, arg2) ⇒ Object
- #a_less_equal(arg1, arg2) ⇒ Object
- #a_method(arg1, arg2) ⇒ Object
- #a_not_equal(arg1, arg2) ⇒ Object
- #a_receiver_method(arg1, arg2) ⇒ Object
- #a_type(arg1, arg2) ⇒ Object
- #add_scope ⇒ Object
- #allow_private ⇒ Object
- #b_if(arg1, arg2) ⇒ Object
- #b_if_int(arg1, arg2, arg3) ⇒ Object
-
#b_if_serial(arg1, arg2, arg3) ⇒ Object
Branching instructions.
- #call(arg1, arg2) ⇒ Object
- #call_0(arg1) ⇒ Object
- #call_send(arg1, arg2) ⇒ Object
- #cast_array ⇒ Object
- #cast_for_multi_block_arg ⇒ Object
- #cast_for_single_block_arg ⇒ Object
- #cast_for_splat_block_arg ⇒ Object
- #cast_multi_value ⇒ Object
- #check_frozen ⇒ Object
- #check_interrupts ⇒ Object
- #check_serial(arg1, arg2) ⇒ Object
- #check_serial_private(arg1, arg2) ⇒ Object
- #clear_exception ⇒ Object
- #create_block(arg1) ⇒ Object
- #dup ⇒ Object
- #dup_many(arg1) ⇒ Object
- #e_cache_function(arg1, arg2) ⇒ Object
- #e_cache_function_p(arg1, arg2, arg3) ⇒ Object
- #e_cache_method(arg1, arg2) ⇒ Object
- #e_cache_method_p(arg1, arg2, arg3) ⇒ Object
- #e_cache_value(arg1, arg2) ⇒ Object
- #e_cache_value_p(arg1, arg2) ⇒ Object
- #e_check_signature(arg1, arg2) ⇒ Object
- #e_invoke_function(arg1, arg2) ⇒ Object
- #e_invoke_method(arg1, arg2) ⇒ Object
- #e_resolve_function(arg1, arg2, arg3) ⇒ Object
- #e_resolve_method(arg1, arg2, arg3) ⇒ Object
- #e_resolve_path_constant(arg1, arg2) ⇒ Object
- #e_resolve_receiver_method(arg1, arg2, arg3) ⇒ Object
- #e_resolve_scope_constant(arg1, arg2) ⇒ Object
- #e_signature(arg1) ⇒ Object
- #emit_push_literal(arg1) ⇒ Object (also: #push_literal)
- #ensure_return ⇒ Object
- #find_const(arg1) ⇒ Object
- #goto(arg1) ⇒ Object
- #goto_future(arg1) ⇒ Object
- #goto_if_equal(arg1) ⇒ Object
- #goto_if_false(arg1) ⇒ Object
- #goto_if_nil(arg1) ⇒ Object
- #goto_if_not_equal(arg1) ⇒ Object
- #goto_if_not_nil(arg1) ⇒ Object
- #goto_if_not_undefined(arg1) ⇒ Object
- #goto_if_true(arg1) ⇒ Object
- #goto_if_undefined(arg1) ⇒ Object
- #goto_past(arg1) ⇒ Object
- #instance_of ⇒ Object
- #invoke_primitive(arg1, arg2) ⇒ Object
- #kind_of ⇒ Object
-
#m_bytes(arg1, arg2) ⇒ Object
Instrumentation instructions.
- #m_counter(arg1) ⇒ Object
- #m_debug ⇒ Object
- #m_log(arg1) ⇒ Object
- #m_sum(arg1, arg2) ⇒ Object
- #m_time_stamp(arg1, arg2) ⇒ Object
- #m_timer_start(arg1) ⇒ Object
- #m_timer_stop(arg1, arg2) ⇒ Object
- #m_value(arg1, arg2) ⇒ Object
- #make_array(arg1) ⇒ Object
- #move_down(arg1) ⇒ Object
-
#n_iadd(arg1, arg2, arg3) ⇒ Object
Native signed integer instructions.
- #n_iadd_o(arg1, arg2, arg3) ⇒ Object
- #n_idiv(arg1, arg2, arg3) ⇒ Object
- #n_idiv_o(arg1, arg2, arg3) ⇒ Object
- #n_ieq(arg1, arg2, arg3) ⇒ Object
- #n_ige(arg1, arg2, arg3) ⇒ Object
- #n_igt(arg1, arg2, arg3) ⇒ Object
- #n_ile(arg1, arg2, arg3) ⇒ Object
- #n_ilt(arg1, arg2, arg3) ⇒ Object
- #n_imul(arg1, arg2, arg3) ⇒ Object
- #n_imul_o(arg1, arg2, arg3) ⇒ Object
- #n_ine(arg1, arg2, arg3) ⇒ Object
- #n_ipopcnt(arg1, arg2) ⇒ Object
- #n_isub(arg1, arg2, arg3) ⇒ Object
- #n_isub_o(arg1, arg2, arg3) ⇒ Object
- #noop ⇒ Object
- #object_to_s(arg1) ⇒ Object
-
#p_any(arg1) ⇒ Object
Parsing Expression Grammar instructions.
- #p_call(arg1) ⇒ Object
- #p_char(arg1) ⇒ Object
- #p_char_set(arg1) ⇒ Object
- #p_choice(arg1, arg2) ⇒ Object
- #p_commit(arg1) ⇒ Object
- #p_commit_back(arg1) ⇒ Object
- #p_commit_partial(arg2) ⇒ Object
- #p_end ⇒ Object
- #p_fail ⇒ Object
- #p_fail_twice ⇒ Object
- #p_init(arg1, arg2) ⇒ Object
- #p_jump(arg1) ⇒ Object
- #p_return ⇒ Object
- #p_span(arg1) ⇒ Object
- #p_test_any(arg1, arg2) ⇒ Object
- #p_test_char(arg1, arg2) ⇒ Object
- #p_test_char_set(arg1, arg2) ⇒ Object
- #passed_arg(arg1) ⇒ Object
- #passed_blockarg(arg1) ⇒ Object
- #pop ⇒ Object
- #pop_many(arg1) ⇒ Object
- #pop_unwind ⇒ Object
- #push_block ⇒ Object
- #push_block_arg ⇒ Object
- #push_const(arg1) ⇒ Object
- #push_cpath_top ⇒ Object
- #push_current_exception ⇒ Object
- #push_exception_state ⇒ Object
- #push_false ⇒ Object
- #push_file ⇒ Object
- #push_has_block ⇒ Object
- #push_int(arg1) ⇒ Object
- #push_ivar(arg1) ⇒ Object
- #push_local(arg1) ⇒ Object
- #push_local_depth(arg1, arg2) ⇒ Object
- #push_memo(arg1) ⇒ Object
- #push_mirror ⇒ Object
- #push_my_field(arg1) ⇒ Object
- #push_my_offset(arg1) ⇒ Object
- #push_nil ⇒ Object
- #push_proc ⇒ Object
- #push_rubinius ⇒ Object
- #push_scope ⇒ Object
- #push_self ⇒ Object
- #push_stack_local(arg1) ⇒ Object
- #push_tagged_nil(arg1) ⇒ Object
- #push_true ⇒ Object
- #push_type ⇒ Object
- #push_undef ⇒ Object
- #push_variables ⇒ Object
- #r_copy(arg1, arg2) ⇒ Object
- #r_load_0(arg1) ⇒ Object
- #r_load_1(arg1) ⇒ Object
- #r_load_false(arg1) ⇒ Object
- #r_load_int(arg1, arg2) ⇒ Object
- #r_load_literal(arg1, arg2) ⇒ Object
-
#r_load_local(arg1, arg2) ⇒ Object
Register movement instructions.
- #r_load_local_depth(arg1, arg2, arg3) ⇒ Object
- #r_load_nil(arg1, arg2) ⇒ Object
- #r_load_stack(arg1) ⇒ Object
- #r_load_true(arg1) ⇒ Object
- #r_store_int(arg1, arg2) ⇒ Object
- #r_store_local(arg1, arg2) ⇒ Object
- #r_store_local_depth(arg1, arg2, arg3) ⇒ Object
- #r_store_stack(arg1) ⇒ Object
- #raise_break ⇒ Object
- #raise_exc ⇒ Object
- #raise_return ⇒ Object
- #reraise ⇒ Object
- #restore_exception_state ⇒ Object
- #ret(arg1) ⇒ Object
- #rotate(arg1) ⇒ Object
- #send_method(arg1) ⇒ Object
- #send_stack(arg1, arg2) ⇒ Object
- #send_stack_with_block(arg1, arg2) ⇒ Object
- #send_stack_with_splat(arg1, arg2) ⇒ Object
- #send_super_stack_with_block(arg1, arg2) ⇒ Object
- #send_super_stack_with_splat(arg1, arg2) ⇒ Object
- #send_vcall(arg1) ⇒ Object
- #set_call_flags(arg1) ⇒ Object
- #set_const(arg1) ⇒ Object
- #set_const_at(arg1) ⇒ Object
- #set_ivar(arg1) ⇒ Object
- #set_local(arg1) ⇒ Object
- #set_local_depth(arg1, arg2) ⇒ Object
- #set_stack_local(arg1) ⇒ Object
- #setup_unwind(arg1, arg2) ⇒ Object
- #shift_array ⇒ Object
- #store_my_field(arg1) ⇒ Object
- #string_append ⇒ Object
- #string_build(arg1) ⇒ Object
- #string_dup ⇒ Object
- #swap ⇒ Object
- #unwind(arg1) ⇒ Object
- #yield_debugger ⇒ Object
- #yield_splat(arg1) ⇒ Object
- #yield_stack(arg1) ⇒ Object
- #zsuper(arg1) ⇒ Object
Instance Method Details
#a_equal(arg1, arg2) ⇒ Object
1298 1299 1300 1301 1302 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1298 def a_equal(arg1, arg2) @stream << 175 << arg1 << arg2 @ip += 3 @instruction = 175 end |
#a_function(arg1, arg2) ⇒ Object
1292 1293 1294 1295 1296 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1292 def a_function(arg1, arg2) @stream << 174 << arg1 << arg2 @ip += 3 @instruction = 174 end |
#a_greater(arg1, arg2) ⇒ Object
1322 1323 1324 1325 1326 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1322 def a_greater(arg1, arg2) @stream << 179 << arg1 << arg2 @ip += 3 @instruction = 179 end |
#a_greater_equal(arg1, arg2) ⇒ Object
1328 1329 1330 1331 1332 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1328 def a_greater_equal(arg1, arg2) @stream << 180 << arg1 << arg2 @ip += 3 @instruction = 180 end |
#a_instance(arg1, arg2) ⇒ Object
1262 1263 1264 1265 1266 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1262 def a_instance(arg1, arg2) @stream << 169 << arg1 << arg2 @ip += 3 @instruction = 169 end |
#a_kind(arg1, arg2) ⇒ Object
1268 1269 1270 1271 1272 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1268 def a_kind(arg1, arg2) @stream << 170 << arg1 << arg2 @ip += 3 @instruction = 170 end |
#a_less(arg1, arg2) ⇒ Object
1310 1311 1312 1313 1314 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1310 def a_less(arg1, arg2) @stream << 177 << arg1 << arg2 @ip += 3 @instruction = 177 end |
#a_less_equal(arg1, arg2) ⇒ Object
1316 1317 1318 1319 1320 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1316 def a_less_equal(arg1, arg2) @stream << 178 << arg1 << arg2 @ip += 3 @instruction = 178 end |
#a_method(arg1, arg2) ⇒ Object
1274 1275 1276 1277 1278 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1274 def a_method(arg1, arg2) @stream << 171 << arg1 << arg2 @ip += 3 @instruction = 171 end |
#a_not_equal(arg1, arg2) ⇒ Object
1304 1305 1306 1307 1308 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1304 def a_not_equal(arg1, arg2) @stream << 176 << arg1 << arg2 @ip += 3 @instruction = 176 end |
#a_receiver_method(arg1, arg2) ⇒ Object
1280 1281 1282 1283 1284 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1280 def a_receiver_method(arg1, arg2) @stream << 172 << arg1 << arg2 @ip += 3 @instruction = 172 end |
#a_type(arg1, arg2) ⇒ Object
1286 1287 1288 1289 1290 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1286 def a_type(arg1, arg2) @stream << 173 << arg1 << arg2 @ip += 3 @instruction = 173 end |
#add_scope ⇒ Object
5 6 7 8 9 10 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 5 def add_scope @stream << 0 @ip += 1 @current_block.add_stack(1, 0) @instruction = 0 end |
#allow_private ⇒ Object
12 13 14 15 16 17 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 12 def allow_private @stream << 1 @ip += 1 @current_block.add_stack(0, 0) @instruction = 1 end |
#b_if(arg1, arg2) ⇒ Object
994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 994 def b_if(arg1, arg2) location = @ip + 2 @stream << 126 << arg1 << arg2 @ip += 3 arg2.used_at location @current_block.left = arg2.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 126 end |
#b_if_int(arg1, arg2, arg3) ⇒ Object
981 982 983 984 985 986 987 988 989 990 991 992 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 981 def b_if_int(arg1, arg2, arg3) location = @ip + 3 @stream << 125 << arg1 << arg2 << arg3 @ip += 4 arg3.used_at location @current_block.left = arg3.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 125 end |
#b_if_serial(arg1, arg2, arg3) ⇒ Object
Branching instructions
968 969 970 971 972 973 974 975 976 977 978 979 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 968 def b_if_serial(arg1, arg2, arg3) location = @ip + 3 @stream << 124 << arg1 << arg2 << arg3 @ip += 4 arg3.used_at location @current_block.left = arg3.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 124 end |
#call(arg1, arg2) ⇒ Object
1397 1398 1399 1400 1401 1402 1403 1404 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1397 def call(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 189 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+1, 1) @instruction = 189 end |
#call_0(arg1) ⇒ Object
1406 1407 1408 1409 1410 1411 1412 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1406 def call_0(arg1) arg1 = find_literal(arg1) @stream << 190 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 190 end |
#call_send(arg1, arg2) ⇒ Object
1388 1389 1390 1391 1392 1393 1394 1395 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1388 def call_send(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 188 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+1, 1) @instruction = 188 end |
#cast_array ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 19 def cast_array unless @instruction == 2 or @instruction == 29 @stream << 2 @ip += 1 end @instruction = 2 end |
#cast_for_multi_block_arg ⇒ Object
27 28 29 30 31 32 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 27 def cast_for_multi_block_arg @stream << 3 @ip += 1 @current_block.add_stack(0, 1) @instruction = 3 end |
#cast_for_single_block_arg ⇒ Object
34 35 36 37 38 39 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 34 def cast_for_single_block_arg @stream << 4 @ip += 1 @current_block.add_stack(0, 1) @instruction = 4 end |
#cast_for_splat_block_arg ⇒ Object
41 42 43 44 45 46 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 41 def cast_for_splat_block_arg @stream << 5 @ip += 1 @current_block.add_stack(0, 1) @instruction = 5 end |
#cast_multi_value ⇒ Object
48 49 50 51 52 53 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 48 def cast_multi_value @stream << 6 @ip += 1 @current_block.add_stack(1, 1) @instruction = 6 end |
#check_frozen ⇒ Object
55 56 57 58 59 60 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 55 def check_frozen @stream << 7 @ip += 1 @current_block.add_stack(1, 1) @instruction = 7 end |
#check_interrupts ⇒ Object
62 63 64 65 66 67 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 62 def check_interrupts @stream << 8 @ip += 1 @current_block.add_stack(0, 0) @instruction = 8 end |
#check_serial(arg1, arg2) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 69 def check_serial(arg1, arg2) arg1 = find_literal(arg1) @stream << 9 << arg1 << arg2 @ip += 3 @current_block.add_stack(1, 1) @instruction = 9 end |
#check_serial_private(arg1, arg2) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 77 def check_serial_private(arg1, arg2) arg1 = find_literal(arg1) @stream << 10 << arg1 << arg2 @ip += 3 @current_block.add_stack(1, 1) @instruction = 10 end |
#clear_exception ⇒ Object
85 86 87 88 89 90 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 85 def clear_exception @stream << 11 @ip += 1 @current_block.add_stack(0, 0) @instruction = 11 end |
#create_block(arg1) ⇒ Object
92 93 94 95 96 97 98 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 92 def create_block(arg1) arg1 = add_generator(arg1) @stream << 12 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 12 end |
#dup ⇒ Object
100 101 102 103 104 105 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 100 def dup @stream << 13 @ip += 1 @current_block.add_stack(1, 2) @instruction = 13 end |
#dup_many(arg1) ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 107 def dup_many(arg1) arg1 = Integer(arg1) @stream << 14 << arg1 @ip += 2 @current_block.add_stack(arg1, (arg1 * 2)) @instruction = 14 end |
#e_cache_function(arg1, arg2) ⇒ Object
1196 1197 1198 1199 1200 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1196 def e_cache_function(arg1, arg2) @stream << 158 << arg1 << arg2 @ip += 3 @instruction = 158 end |
#e_cache_function_p(arg1, arg2, arg3) ⇒ Object
1178 1179 1180 1181 1182 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1178 def e_cache_function_p(arg1, arg2, arg3) @stream << 155 << arg1 << arg2 << arg3 @ip += 4 @instruction = 155 end |
#e_cache_method(arg1, arg2) ⇒ Object
1190 1191 1192 1193 1194 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1190 def e_cache_method(arg1, arg2) @stream << 157 << arg1 << arg2 @ip += 3 @instruction = 157 end |
#e_cache_method_p(arg1, arg2, arg3) ⇒ Object
1172 1173 1174 1175 1176 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1172 def e_cache_method_p(arg1, arg2, arg3) @stream << 154 << arg1 << arg2 << arg3 @ip += 4 @instruction = 154 end |
#e_cache_value(arg1, arg2) ⇒ Object
1202 1203 1204 1205 1206 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1202 def e_cache_value(arg1, arg2) @stream << 159 << arg1 << arg2 @ip += 3 @instruction = 159 end |
#e_cache_value_p(arg1, arg2) ⇒ Object
1184 1185 1186 1187 1188 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1184 def e_cache_value_p(arg1, arg2) @stream << 156 << arg1 << arg2 @ip += 3 @instruction = 156 end |
#e_check_signature(arg1, arg2) ⇒ Object
1244 1245 1246 1247 1248 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1244 def e_check_signature(arg1, arg2) @stream << 166 << arg1 << arg2 @ip += 3 @instruction = 166 end |
#e_invoke_function(arg1, arg2) ⇒ Object
1256 1257 1258 1259 1260 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1256 def e_invoke_function(arg1, arg2) @stream << 168 << arg1 << arg2 @ip += 3 @instruction = 168 end |
#e_invoke_method(arg1, arg2) ⇒ Object
1250 1251 1252 1253 1254 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1250 def e_invoke_method(arg1, arg2) @stream << 167 << arg1 << arg2 @ip += 3 @instruction = 167 end |
#e_resolve_function(arg1, arg2, arg3) ⇒ Object
1220 1221 1222 1223 1224 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1220 def e_resolve_function(arg1, arg2, arg3) @stream << 162 << arg1 << arg2 << arg3 @ip += 4 @instruction = 162 end |
#e_resolve_method(arg1, arg2, arg3) ⇒ Object
1208 1209 1210 1211 1212 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1208 def e_resolve_method(arg1, arg2, arg3) @stream << 160 << arg1 << arg2 << arg3 @ip += 4 @instruction = 160 end |
#e_resolve_path_constant(arg1, arg2) ⇒ Object
1232 1233 1234 1235 1236 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1232 def e_resolve_path_constant(arg1, arg2) @stream << 164 << arg1 << arg2 @ip += 3 @instruction = 164 end |
#e_resolve_receiver_method(arg1, arg2, arg3) ⇒ Object
1214 1215 1216 1217 1218 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1214 def e_resolve_receiver_method(arg1, arg2, arg3) @stream << 161 << arg1 << arg2 << arg3 @ip += 4 @instruction = 161 end |
#e_resolve_scope_constant(arg1, arg2) ⇒ Object
1226 1227 1228 1229 1230 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1226 def e_resolve_scope_constant(arg1, arg2) @stream << 163 << arg1 << arg2 @ip += 3 @instruction = 163 end |
#e_signature(arg1) ⇒ Object
1238 1239 1240 1241 1242 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1238 def e_signature(arg1) @stream << 165 << arg1 @ip += 2 @instruction = 165 end |
#emit_push_literal(arg1) ⇒ Object Also known as: push_literal
418 419 420 421 422 423 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 418 def emit_push_literal(arg1) @stream << 48 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 48 end |
#ensure_return ⇒ Object
115 116 117 118 119 120 121 122 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 115 def ensure_return @stream << 15 @ip += 1 @current_block.add_stack(1, 1) @current_block.close true @current_block = new_basic_block @instruction = 15 end |
#find_const(arg1) ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 124 def find_const(arg1) arg1 = find_literal(arg1) @stream << 16 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 16 end |
#goto(arg1) ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 132 def goto(arg1) location = @ip + 1 @stream << 17 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(0, 0) @current_block.left = arg1.basic_block @current_block.close @current_block = new_basic_block @instruction = 17 end |
#goto_future(arg1) ⇒ Object
1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1346 def goto_future(arg1) location = @ip + 1 @stream << 182 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(0, 0) @current_block.left = arg1.basic_block @current_block.close @current_block = new_basic_block @instruction = 182 end |
#goto_if_equal(arg1) ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 144 def goto_if_equal(arg1) location = @ip + 1 @stream << 18 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(2, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 18 end |
#goto_if_false(arg1) ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 158 def goto_if_false(arg1) location = @ip + 1 @stream << 19 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(1, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 19 end |
#goto_if_nil(arg1) ⇒ Object
172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 172 def goto_if_nil(arg1) location = @ip + 1 @stream << 20 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(1, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 20 end |
#goto_if_not_equal(arg1) ⇒ Object
186 187 188 189 190 191 192 193 194 195 196 197 198 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 186 def goto_if_not_equal(arg1) location = @ip + 1 @stream << 21 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(2, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 21 end |
#goto_if_not_nil(arg1) ⇒ Object
200 201 202 203 204 205 206 207 208 209 210 211 212 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 200 def goto_if_not_nil(arg1) location = @ip + 1 @stream << 22 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(1, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 22 end |
#goto_if_not_undefined(arg1) ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 214 def goto_if_not_undefined(arg1) location = @ip + 1 @stream << 23 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(1, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 23 end |
#goto_if_true(arg1) ⇒ Object
228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 228 def goto_if_true(arg1) location = @ip + 1 @stream << 24 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(1, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 24 end |
#goto_if_undefined(arg1) ⇒ Object
242 243 244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 242 def goto_if_undefined(arg1) location = @ip + 1 @stream << 25 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(1, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 25 end |
#goto_past(arg1) ⇒ Object
1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1334 def goto_past(arg1) location = @ip + 1 @stream << 181 << arg1 @ip += 2 arg1.used_at location @current_block.add_stack(0, 0) @current_block.left = arg1.basic_block @current_block.close @current_block = new_basic_block @instruction = 181 end |
#instance_of ⇒ Object
256 257 258 259 260 261 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 256 def instance_of @stream << 26 @ip += 1 @current_block.add_stack(2, 1) @instruction = 26 end |
#invoke_primitive(arg1, arg2) ⇒ Object
263 264 265 266 267 268 269 270 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 263 def invoke_primitive(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 27 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2, 1) @instruction = 27 end |
#kind_of ⇒ Object
272 273 274 275 276 277 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 272 def kind_of @stream << 28 @ip += 1 @current_block.add_stack(2, 1) @instruction = 28 end |
#m_bytes(arg1, arg2) ⇒ Object
Instrumentation instructions
925 926 927 928 929 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 925 def m_bytes(arg1, arg2) @stream << 117 << arg1 << arg2 @ip += 3 @instruction = 117 end |
#m_counter(arg1) ⇒ Object
931 932 933 934 935 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 931 def m_counter(arg1) @stream << 118 << arg1 @ip += 2 @instruction = 118 end |
#m_debug ⇒ Object
1166 1167 1168 1169 1170 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1166 def m_debug @stream << 153 @ip += 1 @instruction = 153 end |
#m_log(arg1) ⇒ Object
1160 1161 1162 1163 1164 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1160 def m_log(arg1) @stream << 152 << arg1 @ip += 2 @instruction = 152 end |
#m_sum(arg1, arg2) ⇒ Object
937 938 939 940 941 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 937 def m_sum(arg1, arg2) @stream << 119 << arg1 << arg2 @ip += 3 @instruction = 119 end |
#m_time_stamp(arg1, arg2) ⇒ Object
949 950 951 952 953 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 949 def m_time_stamp(arg1, arg2) @stream << 121 << arg1 << arg2 @ip += 3 @instruction = 121 end |
#m_timer_start(arg1) ⇒ Object
955 956 957 958 959 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 955 def m_timer_start(arg1) @stream << 122 << arg1 @ip += 2 @instruction = 122 end |
#m_timer_stop(arg1, arg2) ⇒ Object
961 962 963 964 965 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 961 def m_timer_stop(arg1, arg2) @stream << 123 << arg1 << arg2 @ip += 3 @instruction = 123 end |
#m_value(arg1, arg2) ⇒ Object
943 944 945 946 947 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 943 def m_value(arg1, arg2) @stream << 120 << arg1 << arg2 @ip += 3 @instruction = 120 end |
#make_array(arg1) ⇒ Object
279 280 281 282 283 284 285 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 279 def make_array(arg1) arg1 = Integer(arg1) @stream << 29 << arg1 @ip += 2 @current_block.add_stack(arg1, 1) @instruction = 29 end |
#move_down(arg1) ⇒ Object
287 288 289 290 291 292 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 287 def move_down(arg1) @stream << 30 << arg1 @ip += 2 @current_block.add_stack(arg1, (arg1 * 1)) @instruction = 30 end |
#n_iadd(arg1, arg2, arg3) ⇒ Object
Native signed integer instructions
1070 1071 1072 1073 1074 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1070 def n_iadd(arg1, arg2, arg3) @stream << 137 << arg1 << arg2 << arg3 @ip += 4 @instruction = 137 end |
#n_iadd_o(arg1, arg2, arg3) ⇒ Object
1094 1095 1096 1097 1098 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1094 def n_iadd_o(arg1, arg2, arg3) @stream << 141 << arg1 << arg2 << arg3 @ip += 4 @instruction = 141 end |
#n_idiv(arg1, arg2, arg3) ⇒ Object
1088 1089 1090 1091 1092 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1088 def n_idiv(arg1, arg2, arg3) @stream << 140 << arg1 << arg2 << arg3 @ip += 4 @instruction = 140 end |
#n_idiv_o(arg1, arg2, arg3) ⇒ Object
1112 1113 1114 1115 1116 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1112 def n_idiv_o(arg1, arg2, arg3) @stream << 144 << arg1 << arg2 << arg3 @ip += 4 @instruction = 144 end |
#n_ieq(arg1, arg2, arg3) ⇒ Object
1118 1119 1120 1121 1122 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1118 def n_ieq(arg1, arg2, arg3) @stream << 145 << arg1 << arg2 << arg3 @ip += 4 @instruction = 145 end |
#n_ige(arg1, arg2, arg3) ⇒ Object
1148 1149 1150 1151 1152 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1148 def n_ige(arg1, arg2, arg3) @stream << 150 << arg1 << arg2 << arg3 @ip += 4 @instruction = 150 end |
#n_igt(arg1, arg2, arg3) ⇒ Object
1142 1143 1144 1145 1146 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1142 def n_igt(arg1, arg2, arg3) @stream << 149 << arg1 << arg2 << arg3 @ip += 4 @instruction = 149 end |
#n_ile(arg1, arg2, arg3) ⇒ Object
1136 1137 1138 1139 1140 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1136 def n_ile(arg1, arg2, arg3) @stream << 148 << arg1 << arg2 << arg3 @ip += 4 @instruction = 148 end |
#n_ilt(arg1, arg2, arg3) ⇒ Object
1130 1131 1132 1133 1134 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1130 def n_ilt(arg1, arg2, arg3) @stream << 147 << arg1 << arg2 << arg3 @ip += 4 @instruction = 147 end |
#n_imul(arg1, arg2, arg3) ⇒ Object
1082 1083 1084 1085 1086 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1082 def n_imul(arg1, arg2, arg3) @stream << 139 << arg1 << arg2 << arg3 @ip += 4 @instruction = 139 end |
#n_imul_o(arg1, arg2, arg3) ⇒ Object
1106 1107 1108 1109 1110 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1106 def n_imul_o(arg1, arg2, arg3) @stream << 143 << arg1 << arg2 << arg3 @ip += 4 @instruction = 143 end |
#n_ine(arg1, arg2, arg3) ⇒ Object
1124 1125 1126 1127 1128 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1124 def n_ine(arg1, arg2, arg3) @stream << 146 << arg1 << arg2 << arg3 @ip += 4 @instruction = 146 end |
#n_ipopcnt(arg1, arg2) ⇒ Object
1154 1155 1156 1157 1158 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1154 def n_ipopcnt(arg1, arg2) @stream << 151 << arg1 << arg2 @ip += 3 @instruction = 151 end |
#n_isub(arg1, arg2, arg3) ⇒ Object
1076 1077 1078 1079 1080 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1076 def n_isub(arg1, arg2, arg3) @stream << 138 << arg1 << arg2 << arg3 @ip += 4 @instruction = 138 end |
#n_isub_o(arg1, arg2, arg3) ⇒ Object
1100 1101 1102 1103 1104 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1100 def n_isub_o(arg1, arg2, arg3) @stream << 142 << arg1 << arg2 << arg3 @ip += 4 @instruction = 142 end |
#noop ⇒ Object
294 295 296 297 298 299 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 294 def noop @stream << 31 @ip += 1 @current_block.add_stack(0, 0) @instruction = 31 end |
#object_to_s(arg1) ⇒ Object
301 302 303 304 305 306 307 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 301 def object_to_s(arg1) arg1 = find_literal(arg1) @stream << 32 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 32 end |
#p_any(arg1) ⇒ Object
Parsing Expression Grammar instructions
816 817 818 819 820 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 816 def p_any(arg1) @stream << 99 << arg1 @ip += 2 @instruction = 99 end |
#p_call(arg1) ⇒ Object
822 823 824 825 826 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 822 def p_call(arg1) @stream << 100 << arg1 @ip += 2 @instruction = 100 end |
#p_char(arg1) ⇒ Object
828 829 830 831 832 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 828 def p_char(arg1) @stream << 101 << arg1 @ip += 2 @instruction = 101 end |
#p_char_set(arg1) ⇒ Object
834 835 836 837 838 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 834 def p_char_set(arg1) @stream << 102 << arg1 @ip += 2 @instruction = 102 end |
#p_choice(arg1, arg2) ⇒ Object
840 841 842 843 844 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 840 def p_choice(arg1, arg2) @stream << 103 << arg1 << arg2 @ip += 3 @instruction = 103 end |
#p_commit(arg1) ⇒ Object
846 847 848 849 850 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 846 def p_commit(arg1) @stream << 104 << arg1 @ip += 2 @instruction = 104 end |
#p_commit_back(arg1) ⇒ Object
852 853 854 855 856 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 852 def p_commit_back(arg1) @stream << 105 << arg1 @ip += 2 @instruction = 105 end |
#p_commit_partial(arg2) ⇒ Object
858 859 860 861 862 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 858 def p_commit_partial(arg2) @stream << 106 << arg1 @ip += 2 @instruction = 106 end |
#p_end ⇒ Object
864 865 866 867 868 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 864 def p_end @stream << 107 @ip += 1 @instruction = 107 end |
#p_fail ⇒ Object
870 871 872 873 874 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 870 def p_fail @stream << 108 @ip += 1 @instruction = 108 end |
#p_fail_twice ⇒ Object
876 877 878 879 880 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 876 def p_fail_twice @stream << 109 @ip += 1 @instruction = 109 end |
#p_init(arg1, arg2) ⇒ Object
918 919 920 921 922 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 918 def p_init(arg1, arg2) @stream << 116 << arg1 << arg2 @ip += 3 @instruction = 116 end |
#p_jump(arg1) ⇒ Object
882 883 884 885 886 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 882 def p_jump(arg1) @stream << 110 << arg1 @ip += 2 @instruction = 110 end |
#p_return ⇒ Object
888 889 890 891 892 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 888 def p_return @stream << 111 @ip += 1 @instruction = 111 end |
#p_span(arg1) ⇒ Object
894 895 896 897 898 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 894 def p_span(arg1) @stream << 112 << arg1 @ip += 2 @instruction = 112 end |
#p_test_any(arg1, arg2) ⇒ Object
900 901 902 903 904 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 900 def p_test_any(arg1, arg2) @stream << 113 << arg1 << arg2 @ip += 3 @instruction = 113 end |
#p_test_char(arg1, arg2) ⇒ Object
906 907 908 909 910 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 906 def p_test_char(arg1, arg2) @stream << 114 << arg1 << arg2 @ip += 3 @instruction = 114 end |
#p_test_char_set(arg1, arg2) ⇒ Object
912 913 914 915 916 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 912 def p_test_char_set(arg1, arg2) @stream << 115 << arg1 << arg2 @ip += 3 @instruction = 115 end |
#passed_arg(arg1) ⇒ Object
309 310 311 312 313 314 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 309 def passed_arg(arg1) @stream << 33 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 33 end |
#passed_blockarg(arg1) ⇒ Object
316 317 318 319 320 321 322 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 316 def passed_blockarg(arg1) arg1 = Integer(arg1) @stream << 34 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 34 end |
#pop ⇒ Object
324 325 326 327 328 329 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 324 def pop @stream << 35 @ip += 1 @current_block.add_stack(1, 0) @instruction = 35 end |
#pop_many(arg1) ⇒ Object
331 332 333 334 335 336 337 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 331 def pop_many(arg1) arg1 = Integer(arg1) @stream << 36 << arg1 @ip += 2 @current_block.add_stack(arg1, 0) @instruction = 36 end |
#pop_unwind ⇒ Object
339 340 341 342 343 344 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 339 def pop_unwind @stream << 37 @ip += 1 @current_block.add_stack(0, 0) @instruction = 37 end |
#push_block ⇒ Object
346 347 348 349 350 351 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 346 def push_block @stream << 38 @ip += 1 @current_block.add_stack(0, 1) @instruction = 38 end |
#push_block_arg ⇒ Object
353 354 355 356 357 358 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 353 def push_block_arg @stream << 39 @ip += 1 @current_block.add_stack(0, 1) @instruction = 39 end |
#push_const(arg1) ⇒ Object
360 361 362 363 364 365 366 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 360 def push_const(arg1) arg1 = find_literal(arg1) @stream << 40 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 40 end |
#push_cpath_top ⇒ Object
368 369 370 371 372 373 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 368 def push_cpath_top @stream << 41 @ip += 1 @current_block.add_stack(0, 1) @instruction = 41 end |
#push_current_exception ⇒ Object
375 376 377 378 379 380 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 375 def push_current_exception @stream << 42 @ip += 1 @current_block.add_stack(0, 1) @instruction = 42 end |
#push_exception_state ⇒ Object
382 383 384 385 386 387 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 382 def push_exception_state @stream << 43 @ip += 1 @current_block.add_stack(0, 1) @instruction = 43 end |
#push_false ⇒ Object
389 390 391 392 393 394 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 389 def push_false @stream << 44 @ip += 1 @current_block.add_stack(0, 1) @instruction = 44 end |
#push_file ⇒ Object
808 809 810 811 812 813 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 808 def push_file @stream << 98 @ip += 1 @current_block.add_stack(0, 1) @instruction = 98 end |
#push_has_block ⇒ Object
396 397 398 399 400 401 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 396 def push_has_block @stream << 45 @ip += 1 @current_block.add_stack(0, 1) @instruction = 45 end |
#push_int(arg1) ⇒ Object
403 404 405 406 407 408 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 403 def push_int(arg1) @stream << 46 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 46 end |
#push_ivar(arg1) ⇒ Object
410 411 412 413 414 415 416 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 410 def push_ivar(arg1) arg1 = find_literal(arg1) @stream << 47 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 47 end |
#push_local(arg1) ⇒ Object
427 428 429 430 431 432 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 427 def push_local(arg1) @stream << 49 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 49 end |
#push_local_depth(arg1, arg2) ⇒ Object
434 435 436 437 438 439 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 434 def push_local_depth(arg1, arg2) @stream << 50 << arg1 << arg2 @ip += 3 @current_block.add_stack(0, 1) @instruction = 50 end |
#push_memo(arg1) ⇒ Object
441 442 443 444 445 446 447 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 441 def push_memo(arg1) arg1 = find_literal(arg1) @stream << 51 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 51 end |
#push_mirror ⇒ Object
449 450 451 452 453 454 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 449 def push_mirror @stream << 52 @ip += 1 @current_block.add_stack(0, 1) @instruction = 52 end |
#push_my_field(arg1) ⇒ Object
456 457 458 459 460 461 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 456 def push_my_field(arg1) @stream << 53 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 53 end |
#push_my_offset(arg1) ⇒ Object
463 464 465 466 467 468 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 463 def push_my_offset(arg1) @stream << 54 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 54 end |
#push_nil ⇒ Object
470 471 472 473 474 475 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 470 def push_nil @stream << 55 @ip += 1 @current_block.add_stack(0, 1) @instruction = 55 end |
#push_proc ⇒ Object
477 478 479 480 481 482 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 477 def push_proc @stream << 56 @ip += 1 @current_block.add_stack(0, 1) @instruction = 56 end |
#push_rubinius ⇒ Object
484 485 486 487 488 489 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 484 def push_rubinius @stream << 57 @ip += 1 @current_block.add_stack(0, 1) @instruction = 57 end |
#push_scope ⇒ Object
491 492 493 494 495 496 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 491 def push_scope @stream << 58 @ip += 1 @current_block.add_stack(0, 1) @instruction = 58 end |
#push_self ⇒ Object
498 499 500 501 502 503 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 498 def push_self @stream << 59 @ip += 1 @current_block.add_stack(0, 1) @instruction = 59 end |
#push_stack_local(arg1) ⇒ Object
505 506 507 508 509 510 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 505 def push_stack_local(arg1) @stream << 60 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 60 end |
#push_tagged_nil(arg1) ⇒ Object
1414 1415 1416 1417 1418 1419 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1414 def push_tagged_nil(arg1) @stream << 191 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 191 end |
#push_true ⇒ Object
512 513 514 515 516 517 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 512 def push_true @stream << 61 @ip += 1 @current_block.add_stack(0, 1) @instruction = 61 end |
#push_type ⇒ Object
519 520 521 522 523 524 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 519 def push_type @stream << 62 @ip += 1 @current_block.add_stack(0, 1) @instruction = 62 end |
#push_undef ⇒ Object
526 527 528 529 530 531 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 526 def push_undef @stream << 63 @ip += 1 @current_block.add_stack(0, 1) @instruction = 63 end |
#push_variables ⇒ Object
533 534 535 536 537 538 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 533 def push_variables @stream << 64 @ip += 1 @current_block.add_stack(0, 1) @instruction = 64 end |
#r_copy(arg1, arg2) ⇒ Object
1063 1064 1065 1066 1067 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1063 def r_copy(arg1, arg2) @stream << 136 << arg1 << arg2 @ip += 3 @instruction = 136 end |
#r_load_0(arg1) ⇒ Object
1358 1359 1360 1361 1362 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1358 def r_load_0(arg1) @stream << 183 << arg1 @ip += 2 @instruction = 183 end |
#r_load_1(arg1) ⇒ Object
1364 1365 1366 1367 1368 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1364 def r_load_1(arg1) @stream << 184 << arg1 @ip += 2 @instruction = 184 end |
#r_load_false(arg1) ⇒ Object
1376 1377 1378 1379 1380 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1376 def r_load_false(arg1) @stream << 186 << arg1 @ip += 2 @instruction = 186 end |
#r_load_int(arg1, arg2) ⇒ Object
1051 1052 1053 1054 1055 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1051 def r_load_int(arg1, arg2) @stream << 134 << arg1 << arg2 @ip += 3 @instruction = 134 end |
#r_load_literal(arg1, arg2) ⇒ Object
1045 1046 1047 1048 1049 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1045 def r_load_literal(arg1, arg2) @stream << 133 << arg1 << arg2 @ip += 3 @instruction = 133 end |
#r_load_local(arg1, arg2) ⇒ Object
Register movement instructions
1008 1009 1010 1011 1012 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1008 def r_load_local(arg1, arg2) @stream << 127 << arg1 << arg2 @ip += 3 @instructions = 127 end |
#r_load_local_depth(arg1, arg2, arg3) ⇒ Object
1020 1021 1022 1023 1024 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1020 def r_load_local_depth(arg1, arg2, arg3) @stream << 129 << arg1 << arg2 << arg3 @ip += 4 @instructions = 129 end |
#r_load_nil(arg1, arg2) ⇒ Object
1370 1371 1372 1373 1374 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1370 def r_load_nil(arg1, arg2) @stream << 185 << arg1 << arg2 @ip += 3 @instruction = 185 end |
#r_load_stack(arg1) ⇒ Object
1032 1033 1034 1035 1036 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1032 def r_load_stack(arg1) @stream << 131 << arg1 @ip += 2 @instructions = 131 end |
#r_load_true(arg1) ⇒ Object
1382 1383 1384 1385 1386 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1382 def r_load_true(arg1) @stream << 187 << arg1 @ip += 2 @instruction = 187 end |
#r_store_int(arg1, arg2) ⇒ Object
1057 1058 1059 1060 1061 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1057 def r_store_int(arg1, arg2) @stream << 135 << arg1 << arg2 @ip += 3 @instruction = 135 end |
#r_store_local(arg1, arg2) ⇒ Object
1014 1015 1016 1017 1018 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1014 def r_store_local(arg1, arg2) @stream << 128 << arg1 << arg2 @ip += 3 @instructions = 128 end |
#r_store_local_depth(arg1, arg2, arg3) ⇒ Object
1026 1027 1028 1029 1030 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1026 def r_store_local_depth(arg1, arg2, arg3) @stream << 130 << arg1 << arg2 << arg3 @ip += 4 @instructions = 130 end |
#r_store_stack(arg1) ⇒ Object
1038 1039 1040 1041 1042 1043 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 1038 def r_store_stack(arg1) @stream << 132 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instructions = 132 end |
#raise_break ⇒ Object
540 541 542 543 544 545 546 547 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 540 def raise_break @stream << 65 @ip += 1 @current_block.add_stack(1, 1) @current_block.close false @current_block = new_basic_block @instruction = 65 end |
#raise_exc ⇒ Object
549 550 551 552 553 554 555 556 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 549 def raise_exc @stream << 66 @ip += 1 @current_block.add_stack(1, 0) @current_block.close false @current_block = new_basic_block @instruction = 66 end |
#raise_return ⇒ Object
558 559 560 561 562 563 564 565 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 558 def raise_return @stream << 67 @ip += 1 @current_block.add_stack(1, 1) @current_block.close true @current_block = new_basic_block @instruction = 67 end |
#reraise ⇒ Object
567 568 569 570 571 572 573 574 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 567 def reraise @stream << 68 @ip += 1 @current_block.add_stack(0, 0) @current_block.close false @current_block = new_basic_block @instruction = 68 end |
#restore_exception_state ⇒ Object
576 577 578 579 580 581 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 576 def restore_exception_state @stream << 69 @ip += 1 @current_block.add_stack(1, 0) @instruction = 69 end |
#ret(arg1) ⇒ Object
583 584 585 586 587 588 589 590 591 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 583 def ret(arg1) arg1 = Integer(arg1) @stream << 70 << arg1 @ip += 2 @current_block.add_stack(1, 1) @current_block.close true @current_block = new_basic_block @instruction = 70 end |
#rotate(arg1) ⇒ Object
593 594 595 596 597 598 599 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 593 def rotate(arg1) arg1 = Integer(arg1) @stream << 71 << arg1 @ip += 2 @current_block.add_stack(arg1, (arg1 * 1)) @instruction = 71 end |
#send_method(arg1) ⇒ Object
601 602 603 604 605 606 607 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 601 def send_method(arg1) arg1 = find_literal(arg1) @stream << 72 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 72 end |
#send_stack(arg1, arg2) ⇒ Object
609 610 611 612 613 614 615 616 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 609 def send_stack(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 73 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+1, 1) @instruction = 73 end |
#send_stack_with_block(arg1, arg2) ⇒ Object
618 619 620 621 622 623 624 625 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 618 def send_stack_with_block(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 74 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+2, 1) @instruction = 74 end |
#send_stack_with_splat(arg1, arg2) ⇒ Object
627 628 629 630 631 632 633 634 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 627 def send_stack_with_splat(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 75 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+3, 1) @instruction = 75 end |
#send_super_stack_with_block(arg1, arg2) ⇒ Object
636 637 638 639 640 641 642 643 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 636 def send_super_stack_with_block(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 76 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+1, 1) @instruction = 76 end |
#send_super_stack_with_splat(arg1, arg2) ⇒ Object
645 646 647 648 649 650 651 652 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 645 def send_super_stack_with_splat(arg1, arg2) arg1 = find_literal(arg1) arg2 = Integer(arg2) @stream << 77 << arg1 << arg2 @ip += 3 @current_block.add_stack(arg2+2, 1) @instruction = 77 end |
#send_vcall(arg1) ⇒ Object
654 655 656 657 658 659 660 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 654 def send_vcall(arg1) arg1 = find_literal(arg1) @stream << 78 << arg1 @ip += 2 @current_block.add_stack(0, 1) @instruction = 78 end |
#set_call_flags(arg1) ⇒ Object
662 663 664 665 666 667 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 662 def set_call_flags(arg1) @stream << 79 << arg1 @ip += 2 @current_block.add_stack(0, 0) @instruction = 79 end |
#set_const(arg1) ⇒ Object
669 670 671 672 673 674 675 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 669 def set_const(arg1) arg1 = find_literal(arg1) @stream << 80 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 80 end |
#set_const_at(arg1) ⇒ Object
677 678 679 680 681 682 683 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 677 def set_const_at(arg1) arg1 = find_literal(arg1) @stream << 81 << arg1 @ip += 2 @current_block.add_stack(2, 1) @instruction = 81 end |
#set_ivar(arg1) ⇒ Object
685 686 687 688 689 690 691 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 685 def set_ivar(arg1) arg1 = find_literal(arg1) @stream << 82 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 82 end |
#set_local(arg1) ⇒ Object
693 694 695 696 697 698 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 693 def set_local(arg1) @stream << 83 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 83 end |
#set_local_depth(arg1, arg2) ⇒ Object
700 701 702 703 704 705 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 700 def set_local_depth(arg1, arg2) @stream << 84 << arg1 << arg2 @ip += 3 @current_block.add_stack(1, 1) @instruction = 84 end |
#set_stack_local(arg1) ⇒ Object
707 708 709 710 711 712 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 707 def set_stack_local(arg1) @stream << 85 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 85 end |
#setup_unwind(arg1, arg2) ⇒ Object
714 715 716 717 718 719 720 721 722 723 724 725 726 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 714 def setup_unwind(arg1, arg2) location = @ip + 1 @stream << 86 << arg1 << arg2 @ip += 3 arg1.used_at location @current_block.add_stack(0, 0) @current_block.left = arg1.basic_block @current_block.close block = new_basic_block @current_block.right = block @current_block = block @instruction = 86 end |
#shift_array ⇒ Object
728 729 730 731 732 733 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 728 def shift_array @stream << 87 @ip += 1 @current_block.add_stack(1, 2) @instruction = 87 end |
#store_my_field(arg1) ⇒ Object
735 736 737 738 739 740 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 735 def store_my_field(arg1) @stream << 88 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 88 end |
#string_append ⇒ Object
742 743 744 745 746 747 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 742 def string_append @stream << 89 @ip += 1 @current_block.add_stack(2, 1) @instruction = 89 end |
#string_build(arg1) ⇒ Object
749 750 751 752 753 754 755 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 749 def string_build(arg1) arg1 = Integer(arg1) @stream << 90 << arg1 @ip += 2 @current_block.add_stack(arg1, 1) @instruction = 90 end |
#string_dup ⇒ Object
757 758 759 760 761 762 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 757 def string_dup @stream << 91 @ip += 1 @current_block.add_stack(1, 1) @instruction = 91 end |
#swap ⇒ Object
764 765 766 767 768 769 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 764 def swap @stream << 92 @ip += 1 @current_block.add_stack(2, 2) @instruction = 92 end |
#unwind(arg1) ⇒ Object
771 772 773 774 775 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 771 def unwind(arg1) @stream << 93 << arg1 @ip += 2 @instruction = 93 end |
#yield_debugger ⇒ Object
777 778 779 780 781 782 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 777 def yield_debugger @stream << 94 @ip += 1 @current_block.add_stack(0, 0) @instruction = 94 end |
#yield_splat(arg1) ⇒ Object
784 785 786 787 788 789 790 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 784 def yield_splat(arg1) arg1 = Integer(arg1) @stream << 95 << arg1 @ip += 2 @current_block.add_stack(arg1+1, 1) @instruction = 95 end |
#yield_stack(arg1) ⇒ Object
792 793 794 795 796 797 798 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 792 def yield_stack(arg1) arg1 = Integer(arg1) @stream << 96 << arg1 @ip += 2 @current_block.add_stack(arg1, 1) @instruction = 96 end |
#zsuper(arg1) ⇒ Object
800 801 802 803 804 805 806 |
# File 'lib/rubinius/code/compiler/generator_methods.rb', line 800 def zsuper(arg1) arg1 = find_literal(arg1) @stream << 97 << arg1 @ip += 2 @current_block.add_stack(1, 1) @instruction = 97 end |