📄 optabs.c
字号:
if (HAVE_andcbhi3) andcb_optab->handlers[(int) HImode].insn_code = CODE_FOR_andcbhi3;#endif#ifdef HAVE_andcbsi3 if (HAVE_andcbsi3) andcb_optab->handlers[(int) SImode].insn_code = CODE_FOR_andcbsi3;#endif#ifdef HAVE_andcbdi3 if (HAVE_andcbdi3) andcb_optab->handlers[(int) DImode].insn_code = CODE_FOR_andcbdi3;#endif andcb_optab->handlers[(int) DImode].lib_call = "__andcbdi3";#ifdef HAVE_iorqi3 if (HAVE_iorqi3) ior_optab->handlers[(int) QImode].insn_code = CODE_FOR_iorqi3;#endif#ifdef HAVE_iorhi3 if (HAVE_iorhi3) ior_optab->handlers[(int) HImode].insn_code = CODE_FOR_iorhi3;#endif#ifdef HAVE_iorsi3 if (HAVE_iorsi3) ior_optab->handlers[(int) SImode].insn_code = CODE_FOR_iorsi3;#endif#ifdef HAVE_iordi3 if (HAVE_iordi3) ior_optab->handlers[(int) DImode].insn_code = CODE_FOR_iordi3;#endif ior_optab->handlers[(int) DImode].lib_call = "__iordi3";#ifdef HAVE_xorqi3 if (HAVE_xorqi3) xor_optab->handlers[(int) QImode].insn_code = CODE_FOR_xorqi3;#endif#ifdef HAVE_xorhi3 if (HAVE_xorhi3) xor_optab->handlers[(int) HImode].insn_code = CODE_FOR_xorhi3;#endif#ifdef HAVE_xorsi3 if (HAVE_xorsi3) xor_optab->handlers[(int) SImode].insn_code = CODE_FOR_xorsi3;#endif#ifdef HAVE_xordi3 if (HAVE_xordi3) xor_optab->handlers[(int) DImode].insn_code = CODE_FOR_xordi3;#endif xor_optab->handlers[(int) DImode].lib_call = "__xordi3";#ifdef HAVE_ashlqi3 if (HAVE_ashlqi3) ashl_optab->handlers[(int) QImode].insn_code = CODE_FOR_ashlqi3;#endif#ifdef HAVE_ashlhi3 if (HAVE_ashlhi3) ashl_optab->handlers[(int) HImode].insn_code = CODE_FOR_ashlhi3;#endif#ifdef HAVE_ashlsi3 if (HAVE_ashlsi3) ashl_optab->handlers[(int) SImode].insn_code = CODE_FOR_ashlsi3;#endif#ifdef HAVE_ashldi3 if (HAVE_ashldi3) ashl_optab->handlers[(int) DImode].insn_code = CODE_FOR_ashldi3;#endif ashl_optab->handlers[(int) SImode].lib_call = "__ashlsi3"; ashl_optab->handlers[(int) DImode].lib_call = "__ashldi3";#ifdef HAVE_ashrqi3 if (HAVE_ashrqi3) ashr_optab->handlers[(int) QImode].insn_code = CODE_FOR_ashrqi3;#endif#ifdef HAVE_ashrhi3 if (HAVE_ashrhi3) ashr_optab->handlers[(int) HImode].insn_code = CODE_FOR_ashrhi3;#endif#ifdef HAVE_ashrsi3 if (HAVE_ashrsi3) ashr_optab->handlers[(int) SImode].insn_code = CODE_FOR_ashrsi3;#endif#ifdef HAVE_ashrdi3 if (HAVE_ashrdi3) ashr_optab->handlers[(int) DImode].insn_code = CODE_FOR_ashrdi3;#endif ashr_optab->handlers[(int) SImode].lib_call = "__ashrsi3"; ashr_optab->handlers[(int) DImode].lib_call = "__ashrdi3";#ifdef HAVE_lshlqi3 if (HAVE_lshlqi3) lshl_optab->handlers[(int) QImode].insn_code = CODE_FOR_lshlqi3;#endif#ifdef HAVE_lshlhi3 if (HAVE_lshlhi3) lshl_optab->handlers[(int) HImode].insn_code = CODE_FOR_lshlhi3;#endif#ifdef HAVE_lshlsi3 if (HAVE_lshlsi3) lshl_optab->handlers[(int) SImode].insn_code = CODE_FOR_lshlsi3;#endif#ifdef HAVE_lshldi3 if (HAVE_lshldi3) lshl_optab->handlers[(int) DImode].insn_code = CODE_FOR_lshldi3;#endif lshl_optab->handlers[(int) SImode].lib_call = "__lshlsi3"; lshl_optab->handlers[(int) DImode].lib_call = "__lshldi3";#ifdef HAVE_lshrqi3 if (HAVE_lshrqi3) lshr_optab->handlers[(int) QImode].insn_code = CODE_FOR_lshrqi3;#endif#ifdef HAVE_lshrhi3 if (HAVE_lshrhi3) lshr_optab->handlers[(int) HImode].insn_code = CODE_FOR_lshrhi3;#endif#ifdef HAVE_lshrsi3 if (HAVE_lshrsi3) lshr_optab->handlers[(int) SImode].insn_code = CODE_FOR_lshrsi3;#endif#ifdef HAVE_lshrdi3 if (HAVE_lshrdi3) lshr_optab->handlers[(int) DImode].insn_code = CODE_FOR_lshrdi3;#endif lshr_optab->handlers[(int) SImode].lib_call = "__lshrsi3"; lshr_optab->handlers[(int) DImode].lib_call = "__lshrdi3";#ifdef HAVE_rotlqi3 if (HAVE_rotlqi3) rotl_optab->handlers[(int) QImode].insn_code = CODE_FOR_rotlqi3;#endif#ifdef HAVE_rotlhi3 if (HAVE_rotlhi3) rotl_optab->handlers[(int) HImode].insn_code = CODE_FOR_rotlhi3;#endif#ifdef HAVE_rotlsi3 if (HAVE_rotlsi3) rotl_optab->handlers[(int) SImode].insn_code = CODE_FOR_rotlsi3;#endif#ifdef HAVE_rotldi3 if (HAVE_rotldi3) rotl_optab->handlers[(int) DImode].insn_code = CODE_FOR_rotldi3;#endif rotl_optab->handlers[(int) SImode].lib_call = "__rotlsi3"; rotl_optab->handlers[(int) DImode].lib_call = "__rotldi3";#ifdef HAVE_rotrqi3 if (HAVE_rotrqi3) rotr_optab->handlers[(int) QImode].insn_code = CODE_FOR_rotrqi3;#endif#ifdef HAVE_rotrhi3 if (HAVE_rotrhi3) rotr_optab->handlers[(int) HImode].insn_code = CODE_FOR_rotrhi3;#endif#ifdef HAVE_rotrsi3 if (HAVE_rotrsi3) rotr_optab->handlers[(int) SImode].insn_code = CODE_FOR_rotrsi3;#endif#ifdef HAVE_rotrdi3 if (HAVE_rotrdi3) rotr_optab->handlers[(int) DImode].insn_code = CODE_FOR_rotrdi3;#endif rotr_optab->handlers[(int) SImode].lib_call = "__rotrsi3"; rotr_optab->handlers[(int) DImode].lib_call = "__rotrdi3";#ifdef HAVE_negqi2 if (HAVE_negqi2) neg_optab->handlers[(int) QImode].insn_code = CODE_FOR_negqi2;#endif#ifdef HAVE_neghi2 if (HAVE_neghi2) neg_optab->handlers[(int) HImode].insn_code = CODE_FOR_neghi2;#endif#ifdef HAVE_negsi2 if (HAVE_negsi2) neg_optab->handlers[(int) SImode].insn_code = CODE_FOR_negsi2;#endif#ifdef HAVE_negdi2 if (HAVE_negdi2) neg_optab->handlers[(int) DImode].insn_code = CODE_FOR_negdi2;#endif#ifdef HAVE_negsf2 if (HAVE_negsf2) neg_optab->handlers[(int) SFmode].insn_code = CODE_FOR_negsf2;#endif#ifdef HAVE_negdf2 if (HAVE_negdf2) neg_optab->handlers[(int) DFmode].insn_code = CODE_FOR_negdf2;#endif neg_optab->handlers[(int) SImode].lib_call = "__negsi2"; neg_optab->handlers[(int) DImode].lib_call = "__negdi2"; neg_optab->handlers[(int) SFmode].lib_call = "__negsf2"; neg_optab->handlers[(int) DFmode].lib_call = "__negdf2";#ifdef HAVE_absqi2 if (HAVE_absqi2) abs_optab->handlers[(int) QImode].insn_code = CODE_FOR_absqi2;#endif#ifdef HAVE_abshi2 if (HAVE_abshi2) abs_optab->handlers[(int) HImode].insn_code = CODE_FOR_abshi2;#endif#ifdef HAVE_abssi2 if (HAVE_abssi2) abs_optab->handlers[(int) SImode].insn_code = CODE_FOR_abssi2;#endif#ifdef HAVE_absdi2 if (HAVE_absdi2) abs_optab->handlers[(int) DImode].insn_code = CODE_FOR_absdi2;#endif#ifdef HAVE_abssf2 if (HAVE_abssf2) abs_optab->handlers[(int) SFmode].insn_code = CODE_FOR_abssf2;#endif#ifdef HAVE_absdf2 if (HAVE_absdf2) abs_optab->handlers[(int) DFmode].insn_code = CODE_FOR_absdf2;#endif /* No library calls here! If there is no abs instruction, expand_expr will generate a conditional negation. */#ifdef HAVE_one_cmplqi2 if (HAVE_one_cmplqi2) one_cmpl_optab->handlers[(int) QImode].insn_code = CODE_FOR_one_cmplqi2;#endif#ifdef HAVE_one_cmplhi2 if (HAVE_one_cmplhi2) one_cmpl_optab->handlers[(int) HImode].insn_code = CODE_FOR_one_cmplhi2;#endif#ifdef HAVE_one_cmplsi2 if (HAVE_one_cmplsi2) one_cmpl_optab->handlers[(int) SImode].insn_code = CODE_FOR_one_cmplsi2;#endif#ifdef HAVE_one_cmpldi2 if (HAVE_one_cmpldi2) one_cmpl_optab->handlers[(int) DImode].insn_code = CODE_FOR_one_cmpldi2;#endif one_cmpl_optab->handlers[(int) SImode].lib_call = "__one_cmplsi2"; one_cmpl_optab->handlers[(int) DImode].lib_call = "__one_cmpldi2";#ifdef HAVE_ffsqi2 if (HAVE_ffsqi2) ffs_optab->handlers[(int) QImode].insn_code = CODE_FOR_ffsqi2;#endif#ifdef HAVE_ffshi2 if (HAVE_ffshi2) ffs_optab->handlers[(int) HImode].insn_code = CODE_FOR_ffshi2;#endif#ifdef HAVE_ffssi2 if (HAVE_ffssi2) ffs_optab->handlers[(int) SImode].insn_code = CODE_FOR_ffssi2;#endif#ifdef HAVE_ffsdi2 if (HAVE_ffsdi2) ffs_optab->handlers[(int) DImode].insn_code = CODE_FOR_ffsdi2;#endif ffs_optab->handlers[(int) SImode].lib_call = "ffs"; #ifdef HAVE_movqi if (HAVE_movqi) mov_optab->handlers[(int) QImode].insn_code = CODE_FOR_movqi;#endif#ifdef HAVE_movhi if (HAVE_movhi) mov_optab->handlers[(int) HImode].insn_code = CODE_FOR_movhi;#endif#ifdef HAVE_movsi if (HAVE_movsi) mov_optab->handlers[(int) SImode].insn_code = CODE_FOR_movsi;#endif#ifdef HAVE_movdi if (HAVE_movdi) mov_optab->handlers[(int) DImode].insn_code = CODE_FOR_movdi;#endif#ifdef HAVE_movti if (HAVE_movti) mov_optab->handlers[(int) TImode].insn_code = CODE_FOR_movti;#endif#ifdef HAVE_movsf if (HAVE_movsf) mov_optab->handlers[(int) SFmode].insn_code = CODE_FOR_movsf;#endif#ifdef HAVE_movdf if (HAVE_movdf) mov_optab->handlers[(int) DFmode].insn_code = CODE_FOR_movdf;#endif#ifdef HAVE_movtf if (HAVE_movtf) mov_optab->handlers[(int) TFmode].insn_code = CODE_FOR_movtf;#endif#ifdef HAVE_movstrictqi if (HAVE_movstrictqi) movstrict_optab->handlers[(int) QImode].insn_code = CODE_FOR_movstrictqi;#endif#ifdef HAVE_movstricthi if (HAVE_movstricthi) movstrict_optab->handlers[(int) HImode].insn_code = CODE_FOR_movstricthi;#endif#ifdef HAVE_movstrictsi if (HAVE_movstrictsi) movstrict_optab->handlers[(int) SImode].insn_code = CODE_FOR_movstrictsi;#endif#ifdef HAVE_movstrictdi if (HAVE_movstrictdi) movstrict_optab->handlers[(int) DImode].insn_code = CODE_FOR_movstrictdi;#endif#ifdef HAVE_cmpqi if (HAVE_cmpqi) cmp_optab->handlers[(int) QImode].insn_code = CODE_FOR_cmpqi;#endif#ifdef HAVE_cmphi if (HAVE_cmphi) cmp_optab->handlers[(int) HImode].insn_code = CODE_FOR_cmphi;#endif#ifdef HAVE_cmpsi if (HAVE_cmpsi) cmp_optab->handlers[(int) SImode].insn_code = CODE_FOR_cmpsi;#endif#ifdef HAVE_cmpdi if (HAVE_cmpdi) cmp_optab->handlers[(int) DImode].insn_code = CODE_FOR_cmpdi;#endif#ifdef HAVE_cmpsf if (HAVE_cmpsf) cmp_optab->handlers[(int) SFmode].insn_code = CODE_FOR_cmpsf;#endif#ifdef HAVE_cmpdf if (HAVE_cmpdf) cmp_optab->handlers[(int) DFmode].insn_code = CODE_FOR_cmpdf;#endif#ifdef HAVE_tstqi if (HAVE_tstqi) tst_optab->handlers[(int) QImode].insn_code = CODE_FOR_tstqi;#endif#ifdef HAVE_tsthi if (HAVE_tsthi) tst_optab->handlers[(int) HImode].insn_code = CODE_FOR_tsthi;#endif#ifdef HAVE_tstsi if (HAVE_tstsi) tst_optab->handlers[(int) SImode].insn_code = CODE_FOR_tstsi;#endif#ifdef HAVE_tstdi if (HAVE_tstdi) tst_optab->handlers[(int) DImode].insn_code = CODE_FOR_tstdi;#endif#ifdef HAVE_tstsf if (HAVE_tstsf) tst_optab->handlers[(int) SFmode].insn_code = CODE_FOR_tstsf;#endif#ifdef HAVE_tstdf if (HAVE_tstdf) tst_optab->handlers[(int) DFmode].insn_code = CODE_FOR_tstdf;#endif /* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */ cmp_optab->handlers[(int) DImode].lib_call = "__cmpdi2"; ucmp_optab->handlers[(int) DImode].lib_call = "__ucmpdi2"; cmp_optab->handlers[(int) SFmode].lib_call = "__cmpsf2"; cmp_optab->handlers[(int) DFmode].lib_call = "__cmpdf2";#if HAVE_beq if (HAVE_beq) bcc_gen_fctn[(int) EQ] = gen_beq;#endif#if HAVE_bne if (HAVE_bne) bcc_gen_fctn[(int) NE] = gen_bne;#endif#if HAVE_bgt if (HAVE_bgt) bcc_gen_fctn[(int) GT] = gen_bgt;#endif#if HAVE_bge if (HAVE_bge) bcc_gen_fctn[(int) GE] = gen_bge;#endif#if HAVE_bgtu if (HAVE_bgtu) bcc_gen_fctn[(int) GTU] = gen_bgtu;#endif#if HAVE_bgeu if (HAVE_bgeu) bcc_gen_fctn[(int) GEU] = gen_bgeu;#endif#if HAVE_blt if (HAVE_blt) bcc_gen_fctn[(int) LT] = gen_blt;#endif#if HAVE_ble if (HAVE_ble) bcc_gen_fctn[(int) LE] = gen_ble;#endif#if HAVE_bltu if (HAVE_bltu) bcc_gen_fctn[(int) LTU] = gen_bltu;#endif#if HAVE_bleu if (HAVE_bleu) bcc_gen_fctn[(int) LEU] = gen_bleu;#endif#if HAVE_seq if (HAVE_seq) setcc_gen_fctn[(int) EQ] = gen_seq;#endif#if HAVE_sne if (HAVE_sne) setcc_gen_fctn[(int) NE] = gen_sne;#endif#if HAVE_sgt if (HAVE_sgt) setcc_gen_fctn[(int) GT] = gen_sgt;#endif#if HAVE_sge if (HAVE_sge) setcc_gen_fctn[(int) GE] = gen_sge;#endif#if HAVE_sgtu if (HAVE_sgtu) setcc_gen_fctn[(int) GTU] = gen_sgtu;#endif#if HAVE_sgeu if (HAVE_sgeu) setcc_gen_fctn[(int) GEU] = gen_sgeu;#endif#if HAVE_slt if (HAVE_slt) setcc_gen_fctn[(int) LT] = gen_slt;#endif#if HAVE_sle if (HAVE_sle) setcc_gen_fctn[(int) LE] = gen_sle;#endif#if HAVE_sltu if (HAVE_sltu) setcc_gen_fctn[(int) LTU] = gen_sltu;#endif#if HAVE_sleu if (HAVE_sleu) setcc_gen_fctn[(int) LEU] = gen_sleu;#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -