??? {
int op; // オペコード
signed char preg, mreg, bas, idx, scl;
// pregはmod r/mの真ん中のレジスタ
// mregはmod r/mで表すレジスタ(ここが-1だとレジスタではなくメモリになる)
// basはmod r/mで表すベースレジスタ(使わないのなら-1)
// idxはsibで表すインデックスレジスタ(使わないのなら-1)
// sclはsibで表すスケールファクタ(使わないのなら0)
int dsp; // mod r/mのディスプレースメント
int imm32;
AInt64 imm64;
};| grd.c | mandel.c | maze.c | kcube.c | invader.c | |
| HL-16a | 158 | 622 | 1274 | 3125 | 1958 |
| HLX-001 (2021.07.21版) | 266 | 1004 | 1931 | 4486 | 2901 |
| grd.c | mandel.c | maze.c | kcube.c | invader.c | ||
| HL-16a | 158 | 622 | 1274 | 3125 | 1958 | |
| HL-16a | 230 | 760 | 1542 | 3503 | 2366 | レジスタ変数を一切使わない場合(比較用)。 |
| HLX-001 (2021.07.21版) | 266 | 1004 | 1931 | 4486 | 2901 | 最適化ほとんどなし。 |
| HLX-001 (2021.07.30a版) | 242 | 944 | 1919 | 4390 | 2773 | 中間コードレベルで、不要な演算を削除。 |
| HLX-001 (2021.07.30b版) | 242 | 908 | 1919 | 4198 | 2729 | 中間コードレベルで、不要な一時変数を削除。 |
| HLX-001 (2021.07.31版) | 210 | 740 | 1525 | 3550 | 2293 | 機械語レベルで、不要な演算を削除。 |
| HLX-001 (2021.08.01版) | 206 | 730 | 1497 | 3488 | 2221 | 比較演算の後の条件分岐を統合する最適化。 |
| HLX-001 (2021.08.02版) | 192 | 679 | 1486 | 3456 | 2169 | for文の最適化を採用。 |
| grd.c | mandel.c | maze.c | kcube.c | invader.c | ||
| HL-16a | 158 | 622 | 1274 | 3125 | 1958 | レジスタ変数を利用 |
| HLX-001 (2021.08.03版) | 109 | 529 | 1194 | 3014 | 1669 | レジスタ変数を利用 |
| コメント | お名前 | NameLink | |