ターゲットをARMとx86限定にしたとき、バックエンドはどう拡張できるか

妄想するだけならおもしろそうだな。

ARMの特徴は…

  • 大体の命令が条件実行できる
  • 大体の命令がシフトできる
  • pcが汎用レジスタもどき
  • thumb
  • コプロ

x86の特徴は…

  • アドレス指定が強力
  • オペランドにメモリがとれる
  • 10日に一個ぐらいのペースで命令が増える
  • 浮動小数命令体系がふたつあって片方がスタック
  • メモリオーダリングが強い

あまり共通点が見当たらないのだった。努力すると、「大体の命令がシフトできる」というのと「SIBでレジスタ値がシフトできる」というのは、似てる気がしないでもない。