[linux-m32r-ja:00133] パラレル命令の出力について 「訂正版」
Kazuhiro Inaoka
inaoka.kazuhiro @ renesas.com
2005年 6月 7日 (火) 17:45:15 JST
稲岡です。
(先ほど、特殊文字を含んだメールを投げてしまいました。
申し訳ありません。訂正版です。)
今更なのですが、GNUアセンブラの出力するオブジェクトの
1)パラレル命令に関する属性
2)-m32r2, -m32rxオプション指定時のパラレル命令出力
に関して、本来の趣旨から離れる出力がされていることに
気がつきました。
【問題】
1)パラレル命令に関する属性
デフォルト(-m32r)のアセンブルオプションの場合でも
オブジェクトの属性にパラレル命令を含む属性がセットされている。
但し、パラレル命令(PNOP以外)は出力されていません。
objdump -x等の出力で
private flags = 1000: m32r instructions
【本来】
デフォルト(-m32r)ではパラレル命令はサポートされないので、
属性は「パラレル命令を含まない」が正しい。
(m32r共通コアでは、パラレル命令をサポートしていないので、
"m32r instructions"でパラレル命令使用中の属性がつくことは
矛盾する。)
2)-m32r2, -m32rxオプション指定時のパラレル命令出力
-m32r2及び-m32rxオプション指定時に、デフォルト(-O無し)で
パラレル命令を出力する。
【本来】
従来、-m32r2, -m32rxで、パラレル命令は、アセンブルオプション
-Oを併用した場合(又はコンパイルオプションで最適化オプション
-O1,-O2,-O3,-Osを指定時に連動)のみに出力されていた。
【対策】
パラレル命令に関する属性をOFFする、パラレル命令の出力を抑止する
場合は、アセンブラオプションに-no-parallelを指定する、
コンパイルオプションに-Wa,-no-parallelを指定してください。
【対応】
1)、2)については、改修予定。
【追加情報】
下記オブジェクトをリンクして、実行形式や、ライブラリ等
リンカーを通すと、下記パラレル属性等(cpu属性以外)は
0にクリアされています。
リンク時のチェックも行っていません。
つまり、現状、オブジェクトのリンク時にこの属性(cpu属性以外)は
何も効果を発揮していません。
以上
linux-m32r-ja メーリングリストの案内