mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	compile.c: use ruby_tag_type
* compile.c (iseq_compile_each): use enum ruby_tag_type names. * vm_core.h (ruby_tag_type): move from eval_intern.h for compiling break/next/redo/return. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									2731b91d80
								
							
						
					
					
						commit
						67f5f9477c
					
				
					 4 changed files with 33 additions and 26 deletions
				
			
		|  | @ -1,3 +1,10 @@ | |||
| Fri Jul 17 22:18:09 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* compile.c (iseq_compile_each): use enum ruby_tag_type names. | ||||
| 
 | ||||
| 	* vm_core.h (ruby_tag_type): move from eval_intern.h for compiling | ||||
| 	  break/next/redo/return. | ||||
| 
 | ||||
| Fri Jul 17 15:39:19 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* include/ruby/encoding.h (ENC_CODERANGE_CLEAN_P): predicate that | ||||
|  |  | |||
							
								
								
									
										10
									
								
								compile.c
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								compile.c
									
										
									
									
									
								
							|  | @ -3706,7 +3706,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) | |||
| 	  break_by_insn: | ||||
| 	    /* escape from block */ | ||||
| 	    COMPILE(ret, "break val (block)", node->nd_stts); | ||||
| 	    ADD_INSN1(ret, line, throw, INT2FIX(level | 0x02) /* TAG_BREAK */ ); | ||||
| 	    ADD_INSN1(ret, line, throw, INT2FIX(level | TAG_BREAK)); | ||||
| 	    if (poped) { | ||||
| 		ADD_INSN(ret, line, pop); | ||||
| 	    } | ||||
|  | @ -3801,7 +3801,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) | |||
| 	    } | ||||
| 	    if (ip != 0) { | ||||
| 		COMPILE(ret, "next val", node->nd_stts); | ||||
| 		ADD_INSN1(ret, line, throw, INT2FIX(level | 0x03) /* TAG_NEXT */ ); | ||||
| 		ADD_INSN1(ret, line, throw, INT2FIX(level | TAG_NEXT)); | ||||
| 
 | ||||
| 		if (poped) { | ||||
| 		    ADD_INSN(ret, line, pop); | ||||
|  | @ -3868,7 +3868,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) | |||
| 	    } | ||||
| 	    if (ip != 0) { | ||||
| 		ADD_INSN(ret, line, putnil); | ||||
| 		ADD_INSN1(ret, line, throw, INT2FIX(level | 0x05) /* TAG_REDO */ ); | ||||
| 		ADD_INSN1(ret, line, throw, INT2FIX(level | TAG_REDO)); | ||||
| 
 | ||||
| 		if (poped) { | ||||
| 		    ADD_INSN(ret, line, pop); | ||||
|  | @ -3883,7 +3883,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) | |||
|       case NODE_RETRY:{ | ||||
| 	if (iseq->type == ISEQ_TYPE_RESCUE) { | ||||
| 	    ADD_INSN(ret, line, putnil); | ||||
| 	    ADD_INSN1(ret, line, throw, INT2FIX(0x04) /* TAG_RETRY */ ); | ||||
| 	    ADD_INSN1(ret, line, throw, INT2FIX(TAG_RETRY)); | ||||
| 
 | ||||
| 	    if (poped) { | ||||
| 		ADD_INSN(ret, line, pop); | ||||
|  | @ -4812,7 +4812,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) | |||
| 		    } | ||||
| 		} | ||||
| 		else { | ||||
| 		    ADD_INSN1(ret, line, throw, INT2FIX(0x01) /* TAG_RETURN */ ); | ||||
| 		    ADD_INSN1(ret, line, throw, INT2FIX(TAG_RETURN)); | ||||
| 		    if (poped) { | ||||
| 			ADD_INSN(ret, line, pop); | ||||
| 		    } | ||||
|  |  | |||
|  | @ -178,27 +178,6 @@ rb_threadptr_tag_jump(rb_thread_t *th, int st) | |||
| 
 | ||||
| #define INTERNAL_EXCEPTION_P(exc) FIXNUM_P(exc) | ||||
| 
 | ||||
| enum ruby_tag_type { | ||||
|     RUBY_TAG_RETURN	= 0x1, | ||||
|     RUBY_TAG_BREAK	= 0x2, | ||||
|     RUBY_TAG_NEXT	= 0x3, | ||||
|     RUBY_TAG_RETRY	= 0x4, | ||||
|     RUBY_TAG_REDO	= 0x5, | ||||
|     RUBY_TAG_RAISE	= 0x6, | ||||
|     RUBY_TAG_THROW	= 0x7, | ||||
|     RUBY_TAG_FATAL	= 0x8, | ||||
|     RUBY_TAG_MASK	= 0xf | ||||
| }; | ||||
| #define TAG_RETURN	RUBY_TAG_RETURN | ||||
| #define TAG_BREAK	RUBY_TAG_BREAK | ||||
| #define TAG_NEXT	RUBY_TAG_NEXT | ||||
| #define TAG_RETRY	RUBY_TAG_RETRY | ||||
| #define TAG_REDO	RUBY_TAG_REDO | ||||
| #define TAG_RAISE	RUBY_TAG_RAISE | ||||
| #define TAG_THROW	RUBY_TAG_THROW | ||||
| #define TAG_FATAL	RUBY_TAG_FATAL | ||||
| #define TAG_MASK	RUBY_TAG_MASK | ||||
| 
 | ||||
| /* CREF operators */ | ||||
| 
 | ||||
| #define NODE_FL_CREF_PUSHED_BY_EVAL_ (((VALUE)1)<<15) | ||||
|  |  | |||
							
								
								
									
										21
									
								
								vm_core.h
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								vm_core.h
									
										
									
									
									
								
							|  | @ -124,6 +124,27 @@ | |||
| 
 | ||||
| typedef unsigned long rb_num_t; | ||||
| 
 | ||||
| enum ruby_tag_type { | ||||
|     RUBY_TAG_RETURN	= 0x1, | ||||
|     RUBY_TAG_BREAK	= 0x2, | ||||
|     RUBY_TAG_NEXT	= 0x3, | ||||
|     RUBY_TAG_RETRY	= 0x4, | ||||
|     RUBY_TAG_REDO	= 0x5, | ||||
|     RUBY_TAG_RAISE	= 0x6, | ||||
|     RUBY_TAG_THROW	= 0x7, | ||||
|     RUBY_TAG_FATAL	= 0x8, | ||||
|     RUBY_TAG_MASK	= 0xf | ||||
| }; | ||||
| #define TAG_RETURN	RUBY_TAG_RETURN | ||||
| #define TAG_BREAK	RUBY_TAG_BREAK | ||||
| #define TAG_NEXT	RUBY_TAG_NEXT | ||||
| #define TAG_RETRY	RUBY_TAG_RETRY | ||||
| #define TAG_REDO	RUBY_TAG_REDO | ||||
| #define TAG_RAISE	RUBY_TAG_RAISE | ||||
| #define TAG_THROW	RUBY_TAG_THROW | ||||
| #define TAG_FATAL	RUBY_TAG_FATAL | ||||
| #define TAG_MASK	RUBY_TAG_MASK | ||||
| 
 | ||||
| /* iseq data type */ | ||||
| 
 | ||||
| struct iseq_compile_data_ensure_node_stack; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 nobu
						nobu