X680x0 (Human68k & SX WINDOW) 対応
Gnu C Compiler 成長履歴
+)機能追加 ±)機能変更 −)機能削除 修)修正 ?)その他
- 97/4/21 経験値 20
- <g2cc1/plus/obj>
- 修)pcr の処理を修正
- 修)GCC2_OPTION2=lの処理を変更。
(詳細は gcc2.doc.html)
- +)関数の引数として(unsigned char)(exp ? 255:0)
という表現が現れた場合のコードを最適化するスイッチ
GCC2_OPTION2=Bを追加。
(詳細は gcc2.doc.html)
- 96/11/9 経験値 19
- <g2cc1/plus/obj>
- 修)float040 の仕様に合わせて FPU レジスタの割り付けポリシーを変更
- 修)pcr の処理を修正
- 96/10/11 経験値 18
- <g2cc1/plus/obj>
- 修)pcr の処理を修正
- 修)ED.X モードのエラー出力を修正
- ±)G/T-RAM 使用開始時のメッセージを Warning から Message 扱いに変更
- 96/7/24 経験値 17
- <g2cc1/plus/obj>
- 修)pcr の処理を修正
- 96/7/24 経験値 16
- <gcc2>
- 修)未設定の環境変数を参照しても処理が続けられるように修正
- <g2cc1/plus/obj>
- 修)GCC2_OPTION2=l の処理を修正
- 修)pcr の処理を修正
- +)8/16 bit の整数をビット数以上右シフトした場合の処理を
GCC2_OPTION2=S で変更できるようにした
(詳細は gcc2.doc.html)
- 96/5/16 経験値 15
- <gcc2>
- 修)正常終了時にはエラータグを消してしまうようにした
- <g2cc1/plus/obj>
- 修)pcr の処理を修正
- 修)GCC2_OPTION2=l の処理を修正
- 96/3/26 経験値 14
- バージョン表示メッセージを変更
- 日本語化を少しだけ進めた
- <gcc2>
- +)エラー時に起動したエディタを中断終了させた場合には
エラータグ mariko.err を残すようにした。
- <g2cc1/plus/obj>
- +)GCC2_OPTION2=# とすると、現在処理中の関数名と処理の進行度を
標準出力に表示する機能を追加。この場合、エラー等は画面に表示
されなくなってしまうが mariko.err への記録は行なわれる。
- 修)pcr の処理を修正
- 修)GCC2_OPTION2=l の時の判断をより厳密に行なうようにして、
条件付近の命令が消えてしまうバグを修正
- 修)-ffppp 指定時に Invalid option エラーが発生しないようにした
- 95/11/11 経験値13
- <gcc2>
- ±)-ffppp で fppp.x を起動するようにした
- <g2cc1/plus/obj>
- 修)-fsx-fixed-location
指定時に SX 関係の一部予約語が通らなかったバグを修正
- 修)Exp.11 で取り入れた最適化は必ずしも正しい出力とは限らないので
-fcache-memref
を指定した時だけ機能するようにした
- 修)上記最適化の条件判定が誤っていたので修正
- +)GCC2_OPTION2 に Z を記述すると
メモリクリアを一旦レジスタに0を代入して行うようになる
- 95/10/4 経験値12
- ?)NIFTY-Serve への登録開始
- +)メッセージを一部日本語化
- <g2cc1/plus/obj>
- 修)ジャンプ系命令が存在すると pcr が無効になってしまうバグを修正
- 修)volatile が無効になってしまうバグを修正
- 修)-fomit-frame-pointer 指定時の割込み関数のスタック位置計算を修正
- 95/7/30 経験値11
- <g2cc1/plus/obj>
- +)pcr アドレスの伝播を最適化
- +)signed long の 2 での除算アルゴリズムを変更
68000 で約3〜4倍の速度向上を実現(030 でも約2倍)
- 修)定数値のメモリへの直接代入ができなくなっていたので修正
- +)GCC2_OPTION2 の L オプションを
L or l に拡張
- +)メモリ参照を等価のレジスタ参照に書き替える最適化を追加
- 95/5/17 経験値10
- <gcc2>
- 修)アセンブラへのコマンドラインを修正
- <g2cc1/plus/obj>
- 修)pcr の処理を修正
- 95/4/30 経験値9
- <g2cc1/plus/obj>
- 修)SX モードで -g オプションを使用した時に一部の変数が
誤ったセクション情報で出力されてしまうバグを修正
- 95/4/23 経験値8
- <g2cc1/plus/obj>
- ±)引数プロトタイプなしの SX/DOSCALL 宣言を void プロトタイプで
宣言したとみなすように文法を変更
- 95/4/18 経験値7
- <g2cc1/plus/obj>
- 修)pcr の処理を修正
- 95/4/14 経験値6
- <gcc2>
- 修)環境変数 include が設定されていない状態でアセンブラの起動に
失敗するバグを修正
- <g2cc1/plus/obj>
- 修)pcr の処理を変更
- 修)-O0 の時にアドレスエラーとなりうる箇所を修正
- 95/3/15 経験値5
- <gcc2>
- 修)エディタの自動起動がうまく行っていなかったのを修正
- <g2cc1/plus/obj>
- 修)pcr が機能しなくなっていたのを修正
- <g2cc1plus>
- 修)メモリ管理のバグを修正
- ?)-fall-virtual が機能していないという報告があったが
修正していいものかどうか分からないのでとりあえずそのまま
- <g2cc1obj>
- 修)セレクタ・テーブルが「定義されているのに未使用」ワーニングに
かからないようにした
- 95/2/5 経験値4
-
基本ソースを FSF version 2.6.3 に変更
- <g2cc1/plus/obj>
- ±)GCC2_OPTION2 に D を記述すると
コンパイラが必要だと思った場合、
関数の終わりに nop を出力するようにした
- ±)-m680[23]0 を指定した時のアセンブラソースの MPU 指定を
68020 → 68030 に変更
- ±)レジスタ割り当ての順番を少し変更
- 修)bsr の最適化を誤って、レジスタにアドレスを代入する部分を
削除していたのを修正
- <g2cc1plus>
- 修)class 内部で定義された変数が、誤ったアドレッシングモードで
使用されるバグを修正
- 修)2Byte 文字の処理を修正
- <libobjc/sx>
- ±)命名規則が変わったり新しいメソッドが追加されたりしている
- 94/12/17 経験値3
- <gcc2>
- +)アセンブラ・ソースとみなす拡張子に .has .HAS を追加
- +)「-V < Version >」でコンパイラの
サブディレクトリを指定できるようにした
- <g2cc1/plus/obj>
- +)-O0 を明示的に指定した時に環境変数 GCC2_OPTION1 を無視するようにした
- 修)最適化でバイト/ワードを正しく保持できていない部分を修正
- <g2cc1plus>
- 修)2Byte 文字の処理を修正
- <libobjcsx>
- +)実行時のエラー・ダイアログで付加情報を表示するようにした
- 94/11/21 経験値2
- <gcc2>
- 修).i, .ii などの拡張子のファイルのコンパイルが
うまく行われなかったのを修正
- 修)エラーメッセージが無限に繰り返されるエンバグを修正
- +)g2as へのコマンドラインに -1 を付加
- +)コマンドライン上の .C/.S を小文字に読みかえる機能を追加。
環境変数 G2CASTC が
(内容は何でも)存在していれば .C -> .c
環境変数 G2CASTS が存在していれば .S -> .s
- <g2lk>
- 修)ファイルが読み込めなかった時にバスエラーを発生していた
のを修正
- <g2cc1/plus>
- 修)all-bsr 関係の処理を修正
- 修)-SX -O0 の時に a5 に値を代入してしまうなどを修正
- 修)タグファイルが生成されるようにした
- −)(OPC)の付加を廃止
- −)字句解析のダンプ「-dy」を無効にし、処理関数を削除。
コンパイラのコードサイズを軽減。
- 94/11/12 レベル3 経験値1(レベルアップ)
- 基本ソースを FSF version 2.6.0 に変更
- <gcc2>
- 修)-Wl, -Xlinker オプションが使えるように修正
- 修)__cplusplus などの自動定義が行われなかったのを修正
- +)自動定義される識別子に __GNUC_MINOR__ を追加。
値は FSF のバージョンの2番目の数字。現在では 6。
- <g2cc1>
- 修)pcr, all-bsr 関係の処理を修正
- 修)2Byte 文字の処理を修正
- +)ループの条件判定をループの前にも複写する最適化を
制御できるようにした。デフォルトは最適化しない。
GCC2_OPTION2 に L を指定することで最適化できる。
- +)(OPC) の付加を開始。
- +)予約語 interrupt, __interrupt, __interrupt__ を追加。
関数の記憶クラスとして使用する。関数内で内容が破壊される
全てのレジスタの退避/復帰を行い、rte で復帰するようになる。
- +)スタックへの値の代入で、同じ内容がレジスタにあれば
そちらで代用する最適化を追加
- ?)メッセージが一部英語のままになっている
- レベル2までの履歴
- 94/10/2 経験値18
- 94/7/25 経験値17
- 94/7/24 経験値16
- 94/6/29 経験値15
- 94/6/19 経験値14
- 94/6/18 経験値13
- 94/6/17 経験値12
- 94/6/15 経験値11
- <gcc2>
- 修)-m680x0 の指定で自動定義される識別子を修正
- 修)古いヘッダでコンパイルしていたために起きていたエラーを
ヘッダの ver.up で fix
- 修)再コンパイル機能が動作しなかったのを修正
- +)LIB などに gcc2.hlp ファイルを作成しておくと、入力ファイルが
指定されなかった時にそれを表示する
- 修)エラーメッセージが無限に繰り返されるというバグを修正
- <g2as>
- ±)名称を g2as に変更。参照環境変数も G2AS に変更。
- ±)GCC2 のための最適化を行うスイッチを「-1」に変更
- 修)絶対アドレッシングが通らなかったのを修正
- ±)ベースアセンブラを HAS 3.08 に変更した
- <g2lk>
- ±)名称を g2lk に変更。参照環境変数も G2lk に変更。
- 修)生成実行ファイル名が NUL になってしまうのを修正
- <g2cc1/plus/obj>
- 修)pcr の動作を修正
- +)アドレスレジスタと0の比較で、同じ内容がデータレジスタに
あればそちらで代用する最適化を追加
- 修)SXモードのデータテーブルを移動。経験値15までとの
互換性を失う。
- 修)jsr d(An) が 正しく出力されないバグを修正
- <g2cc1plus>
- 修)S-JIS の扱いを修正
- <g2cc1obj / libobjcsx.a>
- 修)名前バッファが自動的に拡張しないバグ(FSF)を修正
- 修)SX の OBJR モード時に複数のタスクを起動できないバグを修正。
Exp.17 までとの互換性を失う。
- 修)データテーブルを移動。(.rdata -> .data)互換性を失う。
GCC for Human68kのトップページへ戻る
Link point is
http://www.kyagroup.com/soft/gcc/