SHアセンブラ V.7情報
SHアセンブラ V.7.01.02情報
改修内容
下記の問題を改修しました。
2008/04/01掲載 「アセンブラのリテラルプール自動生成機能に関する注意事項」
SHアセンブラ V.7.01.01情報
改修内容
- .FDATAのオペランドに以下のa.またはb.を記述した場合、エラーとならずに正しくないデータを生成する問題を改修しました。
- 浮動小数点数 + (整数 + 浮動小数点数)
- 算術演算以外の演算
- .FDATAのオペランドに単項マイナスを使用した場合、正しくないデータを生成する問題を改修しました。
- .FDATAのオペランドが以下のa.からc.のすべての条件を満たす場合に、誤ってエラーを出力する問題を改修しました。
- 浮動小数点数 + (浮動小数点数 + 浮動小数点数)である。
- 最初の浮動小数点数の精度を記述している。
- 最初の浮動小数点数の指数部を省略している。
SHアセンブラ V.7.01.00情報
機能改善
浮動小数点数の10進表記による四則演算において、2番目以降の「F'」の省略を許すようにしました。ただし「F'」を省略する場合は、小数部は省略できません。
SHアセンブラ V.7.00.01情報
改修内容
CPUシリーズSH-2A、またはSH2A-FPU用のプログラムを作成する場合に発生する以降3点の問題を改修しました。
- 拡張命令や分岐命令(PC相対)のディスプレースメント値が正しくない場合がある。
例:
------------------------------------------
.ALIGN 4
NOP
MOV.L @(AA,R1),R0
BRA LABEL
.ALIGN 4
BT LABEL
. . . . . . . . . . . . .
LABEL: NOP
AA: .EQU 4
------------------------------------------
発生条件:以下の条件をすべて満たした場合に発生することがあります。
- cpu=sh2aまたはcpu=sh2afpuオプションを指定している。
- ある遅延分岐命令の前に”MOV @(disp,Rn)”(disp:12が指定可であるが指定されていない命令)が奇数個存在する。
- b.の遅延分岐命令の次が.ALIGN制御命令または.ORG制御命令である。
- c.により2バイトのアドレス補正が行われる。
- c.の次が拡張命令、または分岐命令(PC相対)である。
- アドレス分岐の分岐先が間違っている場合がある。
例:
------------------------------------------
.SECTION SEC1,CODE
MOV.L @(AA,R1),R0 ; 2バイト命令
NOP
BRA L3
.ALIGN 4 ; ロケーションカウンタ 補正あり
BF L1 ; ディレイスロット命令でない
L3: NOP
.SECTION SEC2,CODE
L1: NOP
AA: .EQU 4
------------------------------------------
発生条件:以下の条件をすべて満たした場合に発生することがあります。
- cpu=sh2aまたはcpu=sh2afpuオプションを指定している。
- ある遅延分岐命令の前に”MOV @(disp,Rn)”(disp:12が指定可であるが指定されていない命令)が奇数個存在する。
- b.の遅延分岐命令の次が.ALIGN制御命令または.ORG制御命令である。
- c.によりMOV @(disp,Rn)命令数×2バイトの補正がある。
- c.の次がアドレス分岐命令である。
- 偶奇演算子$even2, および$odd2を使用した演算の結果が正しくない場合がある。
SHアセンブラ V.7.00.00情報
新CPUのサポート
SH-2A、SH2A-FPUをサポートしました。
制限値の緩和
defineオプション、.DEFINE制御命令の制限値を32文字から無制限に拡張しました。
.STACK制御命令サポート
.STACK制御命令をサポートしました。これによりアセンブラで記述した関数のスタックサイズをスタック解析ツールに反映することができます。