[H8-ML(860)] Bug in gcc-2.8.1??
From: Junsuke Kunugiza <jk@xxxxxxx>
Date: 2000年11月17日(金)15時10分03秒
くぬぎざです。こんにちは。

現在、RedHat Linux 6.2 に cross-gcc の H8 開発環境を構築して
いるところなのですが、gcc-2.8.1 + crossgcc-gcc-2.8.1.patch で
newlib の make に成功された方はいらっしゃるでしょうか。

わたしのところでは newlib-1.8.0 の make が成功せず、ちょっと
ハマってしまいました。libm の make においては幾つかのファイルの
コンパイルで gas が invalid operands を訴えて終わってしまうほか、
ef_hypot.c のコンパイルでは、cc1 が signal 6 で死亡されます。

invalid operands は、調べてみると H8300(-mh では発生せず)のみ、
シフト命令のコンパイルで明らかにおかしいアセンブラコードを出力
していたので、簡単に修正できました(末尾にパッチを添付しました)。

が、cc1 が signal 6 で死ぬ問題は結局わからず...どなたか、
対処方法をご存じでないでしょうか?

# 応急的に ef_hypot.c を #if 0 で括ったら make できましたけど(^^;


=====================================================================
--- config/h8300/h8300.c.orig	Wed Dec  3 22:09:14 1997
+++ config/h8300/h8300.c	Fri Nov 17 04:39:21 2000
@@ -2338,7 +2338,7 @@
 	  switch (shift_type)
 	    {
 	    case SHIFT_ASHIFT:
-	      *assembler_p = "mov.b\t%y0,%z0n\tmov.b\t%x0,%y0\n\tmov.b\t%w0,%x0\n\tsub.b\t%w0,%w0";
+	      *assembler_p = "mov.b\t%y0,%z0\n\tmov.b\t%x0,%y0\n\tmov.b\t%w0,%x0\n\tsub.b\t%w0,%w0";
 	      *cc_valid_p = 0;
 	      return SHIFT_SPECIAL;
 	    case SHIFT_LSHIFTRT:
=====================================================================


椚座 淳介 (Junsuke Kunugiza)
E-Mail: jk@xxxxxxx

スレッド概略
[表示中](起点)
 └[861(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]