mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* README.ja: code for THINK_C does not exist already. [Bug #1435]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									e6c0a7836c
								
							
						
					
					
						commit
						821831a290
					
				
					 2 changed files with 12 additions and 9 deletions
				
			
		
							
								
								
									
										17
									
								
								README.ja
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								README.ja
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -130,15 +130,14 @@ UNIX
 | 
			
		|||
ことをレポートすれば,解決できるかも知れません.
 | 
			
		||||
 | 
			
		||||
アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
 | 
			
		||||
のアーキテクチャがsetjmp()によって全てのレジスタを jmp_bufに
 | 
			
		||||
格納することと,jmp_bufとスタックが32bitアラインメントされて
 | 
			
		||||
いることを仮定しています.特に前者が成立しない場合の対応は非
 | 
			
		||||
常に困難でしょう.後者の解決は比較的簡単で,gc.cでスタックを
 | 
			
		||||
マークしている部分にアラインメントのバイト数だけずらしてマー
 | 
			
		||||
クするコードを追加するだけで済みます.「defined(THINK_C)」で
 | 
			
		||||
括られている部分を参考にしてください
 | 
			
		||||
 | 
			
		||||
# 実際にはRubyはThink Cではコンパイルできません.
 | 
			
		||||
のアーキテクチャがsetjmp()またはgetcontext()によって全てのレ
 | 
			
		||||
ジスタをjmp_bufやucontext_tに格納することと,jmp_bufや
 | 
			
		||||
ucontext_tとスタックが32bitアラインメントされていることを仮定
 | 
			
		||||
しています.特に前者が成立しない場合の対応は非常に困難でしょ
 | 
			
		||||
う.後者の解決は比較的簡単で,gc.cでスタックをマークしている
 | 
			
		||||
部分にアラインメントのバイト数だけずらしてマークするコードを
 | 
			
		||||
追加するだけで済みます.「defined(__mc68000__)」で括られてい
 | 
			
		||||
る部分を参考にしてください.
 | 
			
		||||
 | 
			
		||||
レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタッ
 | 
			
		||||
クにフラッシュするアセンブラコードを追加する必要があるかも知
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue