*参照元 [#n3db783b]
*参照元 [#m6c2c2b1]
#backlinks

*説明 [#h67992a0]
-パス: [[gcc-8.3/gcc/(build_dir)/insn-output.c]]
*説明 [#c6daf7dd]
-パス: 複数あり
--riscv 版: [[gcc-8.3/gcc/insn_data(global)(riscv)]]

-FIXME: これは何?
--説明

-md ファイルから自動生成される struct insn_data_d 型の巨大な配列
--[[gcc-8.3/gcc/insn_data_d]]

**参考 [#yb83bc1a]

**参考 [#w37dd2db]

-オペランドの定義
--[[gcc-8.3/gcc/operand_data(global)]]
*実装 [#u1218565]
-各アーキテクチャのページを参照してください。


*実装 [#xe450cea]
*コメント [#hd842d39]

RISC-V 向けにビルドしたとき。

 const struct insn_data_d insn_data[] = 
 {
   /* <internal>:0 */
   {
     "*placeholder_for_nothing",
 #if HAVE_DESIGNATED_UNION_INITIALIZERS
     { 0 },
 #else
     { 0, 0, 0 },
 #endif
     { 0 },
     &operand_data[0],
     0,
     0,
     0,
     0,
     0
   },
   /* /home/katsuhiro/share/projects/oss/crosstool-builder-new/./gcc/gcc/config/riscv/riscv.md:403 */
   {
     "addsf3",
 #if HAVE_DESIGNATED_UNION_INITIALIZERS
     { .single =
 #else
     {
 #endif
     "fadd.s\t%0,%1,%2",
 #if HAVE_DESIGNATED_UNION_INITIALIZERS
     },
 #else
     0, 0 },
 #endif
     { (insn_gen_fn::stored_funcptr) gen_addsf3 },
     &operand_data[1],
     3,
     3,
     0,
     1,
     1
   },
 
 //...
 
   /* /home/katsuhiro/share/projects/oss/crosstool-builder-new/./gcc/gcc/config/riscv/riscv.md:412 */
   {
     "addsi3",
 #if HAVE_DESIGNATED_UNION_INITIALIZERS
     { .function = output_3 },
 #else
     { 0, 0, output_3 },
 #endif
     { (insn_gen_fn::stored_funcptr) gen_addsi3 },
     &operand_data[7],
     3,
     3,
     0,
     2,
     3
   },
 
 // この後もずっと続く...


*コメント [#c25d1169]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS