mirror of git://gcc.gnu.org/git/gcc.git
optabs.h: Change CTI_ to COI_.
2005-08-19 Eric Christopher <echristo@apple.com>
* optabs.h: Change CTI_ to COI_.
* optabs.c: Ditto.
From-SVN: r103295
This commit is contained in:
parent
c8f27794b8
commit
c414ac1d70
|
|
@ -1,3 +1,8 @@
|
|||
2005-08-19 Eric Christopher <echristo@apple.com>
|
||||
|
||||
* optabs.h: Change CTI_ to COI_.
|
||||
* optabs.c: Ditto.
|
||||
|
||||
2005-08-19 James E Wilson <wilson@specifix.com>
|
||||
|
||||
* builtins.c (expand_builtin_return_addr): Set
|
||||
|
|
@ -33,14 +38,14 @@
|
|||
block or not.
|
||||
(if_convertible_loop_p): Supply exit block itself to
|
||||
if_convertible_bb_p.
|
||||
|
||||
|
||||
2005-08-19 Richard Earnshaw <richard.earnshaw@arm.com>
|
||||
|
||||
PR target/23473
|
||||
* arm.md (arm_load_pic_register): Change argument to the mask of
|
||||
saved registers. Call thumb_find_work_register if we need a
|
||||
saved registers. Call thumb_find_work_register if we need a
|
||||
scratch register on Thumb.
|
||||
(arm_expand_prologue): Pass empty register set to
|
||||
(arm_expand_prologue): Pass empty register set to
|
||||
arm_load_pic_register.
|
||||
(thumb_expand_prologue): Pass live_regs_mask directly to
|
||||
arm_load_pic_register.
|
||||
|
|
@ -151,7 +156,7 @@
|
|||
(plus_gtu<mode>): Same.
|
||||
|
||||
2005-08-17 Erik Christiansen <erik@dd.nec.com.au>
|
||||
|
||||
|
||||
* config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
|
||||
Move call_table_data to end. Delete spurious .text.
|
||||
(callt_save_all_interrupt): Fix comment typo.
|
||||
|
|
@ -188,8 +193,8 @@
|
|||
* config.gcc: Added z9-109 switch.
|
||||
* config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
|
||||
"x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
|
||||
"x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
|
||||
"x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
|
||||
"x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
|
||||
"x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
|
||||
"x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
|
||||
for "z9_109" cpu attribute.
|
||||
* config/s390/s390.c (z9_109_cost): New processor cost structure.
|
||||
|
|
@ -206,7 +211,7 @@
|
|||
(CONSTRAINT_LEN): Added length of O constraint.
|
||||
(CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
|
||||
* config/s390/s390.md ("cpu"): New value z9_109 added.
|
||||
("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
|
||||
("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
|
||||
"*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
|
||||
"*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
|
||||
"*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
|
||||
|
|
@ -220,7 +225,7 @@
|
|||
"*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
|
||||
"*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
|
||||
"*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
|
||||
"*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
|
||||
"*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
|
||||
immediates.
|
||||
("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
|
||||
"zero_extend<mode>si2"): Allow memory operands and don't manually emit
|
||||
|
|
@ -356,7 +361,7 @@
|
|||
2005-08-15 Richard Earnshaw <richard.earnshaw@arm.com>
|
||||
|
||||
PR target/23355
|
||||
* arm.c (thumb_compute_save_reg_mask): Use similar logic to
|
||||
* arm.c (thumb_compute_save_reg_mask): Use similar logic to
|
||||
arm_compure_save_reg0_reg12_mask to determine when the PIC register
|
||||
must be saved.
|
||||
|
||||
|
|
@ -389,7 +394,7 @@
|
|||
* aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
|
||||
* configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
|
||||
* system.h (HOST_PTR_PRINTF): Don't define, poison it.
|
||||
|
||||
|
||||
* bitmap.c, c-decl.c, config/i386/i386-interix.h,
|
||||
config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
|
||||
Delete HOST_PTR_PRINTF.
|
||||
|
|
@ -424,7 +429,7 @@
|
|||
PR 23386
|
||||
* tree-data-ref.c (estimate_niter_from_size_of_data): When
|
||||
step is negative compute the estimation from init downwards to zero.
|
||||
|
||||
|
||||
2005-08-14 James A. Morrison <phython@gcc.gnu.org>
|
||||
|
||||
* fold-const (fold_binary): Call fold_build2 instead of fold (build.
|
||||
|
|
@ -441,9 +446,9 @@
|
|||
2005-08-14 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
Fix PR tree-optimization/22615
|
||||
|
||||
|
||||
* tree-ssa-structalias.c (solution_set_add): Handle
|
||||
first_vi_for_offset returning NULL.
|
||||
first_vi_for_offset returning NULL.
|
||||
(do_da_constraint): Ditto.
|
||||
(do_sd_constraint): Ditto.
|
||||
(do_ds_constraint): Ditto
|
||||
|
|
@ -451,7 +456,7 @@
|
|||
(build_constraint_graph): RHS is allowed be ANYTHING.
|
||||
(first_vi_for_offset): Return NULL if we couldn't find anything at
|
||||
the offset.
|
||||
|
||||
|
||||
2005-08-14 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* config/s390/s390.c (s390_canonicalize_comparison): Prefer register
|
||||
|
|
@ -466,9 +471,9 @@
|
|||
2005-08-14 Ira Rosen <irar@il.ibm.com>
|
||||
|
||||
PR tree-optimization/23320
|
||||
* tree-data-ref.c (base_addr_differ_p): Add comment. Check
|
||||
data-refs' types instead of base object nullness. Add check for
|
||||
pointer type data-refs before first location comparison. Remove
|
||||
* tree-data-ref.c (base_addr_differ_p): Add comment. Check
|
||||
data-refs' types instead of base object nullness. Add check for
|
||||
pointer type data-refs before first location comparison. Remove
|
||||
assert.
|
||||
|
||||
2005-08-14 Andreas Schwab <schwab@suse.de>
|
||||
|
|
@ -508,7 +513,7 @@
|
|||
* tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
|
||||
single_ssa_def_operand, zero_ssa_operands): Fix documentation.
|
||||
* tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
|
||||
* tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
|
||||
* tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
|
||||
condition.
|
||||
* tree-ssa-loop-ivcanon.c: Fix documentation.
|
||||
* tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
|
||||
|
|
@ -534,7 +539,7 @@
|
|||
|
||||
2005-08-12 Gerald Pfeifer <gerald@pfeifer.com>
|
||||
|
||||
* doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
|
||||
* doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
|
||||
description of -Wold-style-casts.
|
||||
|
||||
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
|
@ -589,7 +594,7 @@
|
|||
|
||||
2005-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
* config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
|
||||
* config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
|
||||
Don't set save_return_addr_p.
|
||||
(s390_register_info): Make clobbered_regs not depending on
|
||||
save_return_addr_p.
|
||||
|
|
|
|||
62
gcc/optabs.c
62
gcc/optabs.c
|
|
@ -59,7 +59,7 @@ optab optab_table[OTI_MAX];
|
|||
rtx libfunc_table[LTI_MAX];
|
||||
|
||||
/* Tables of patterns for converting one mode to another. */
|
||||
convert_optab convert_optab_table[CTI_MAX];
|
||||
convert_optab convert_optab_table[COI_MAX];
|
||||
|
||||
/* Contains the optab used for each rtx code. */
|
||||
optab code_to_optab[NUM_RTX_CODE + 1];
|
||||
|
|
@ -349,8 +349,8 @@ optab_for_tree_code (enum tree_code code, tree type)
|
|||
this may or may not be TARGET. */
|
||||
|
||||
rtx
|
||||
expand_ternary_op (enum machine_mode mode, optab ternary_optab, rtx op0,
|
||||
rtx op1, rtx op2, rtx target, int unsignedp)
|
||||
expand_ternary_op (enum machine_mode mode, optab ternary_optab, rtx op0,
|
||||
rtx op1, rtx op2, rtx target, int unsignedp)
|
||||
{
|
||||
int icode = (int) ternary_optab->handlers[(int) mode].insn_code;
|
||||
enum machine_mode mode0 = insn_data[icode].operand[1].mode;
|
||||
|
|
@ -377,7 +377,7 @@ expand_ternary_op (enum machine_mode mode, optab ternary_optab, rtx op0,
|
|||
if (GET_MODE (op0) != mode0 && mode0 != VOIDmode)
|
||||
xop0 = convert_modes (mode0,
|
||||
GET_MODE (op0) != VOIDmode
|
||||
? GET_MODE (op0)
|
||||
? GET_MODE (op0)
|
||||
: mode,
|
||||
xop0, unsignedp);
|
||||
|
||||
|
|
@ -397,23 +397,23 @@ expand_ternary_op (enum machine_mode mode, optab ternary_optab, rtx op0,
|
|||
|
||||
/* Now, if insn's predicates don't allow our operands, put them into
|
||||
pseudo regs. */
|
||||
|
||||
|
||||
if (!insn_data[icode].operand[1].predicate (xop0, mode0)
|
||||
&& mode0 != VOIDmode)
|
||||
&& mode0 != VOIDmode)
|
||||
xop0 = copy_to_mode_reg (mode0, xop0);
|
||||
|
||||
|
||||
if (!insn_data[icode].operand[2].predicate (xop1, mode1)
|
||||
&& mode1 != VOIDmode)
|
||||
xop1 = copy_to_mode_reg (mode1, xop1);
|
||||
|
||||
|
||||
if (!insn_data[icode].operand[3].predicate (xop2, mode2)
|
||||
&& mode2 != VOIDmode)
|
||||
xop2 = copy_to_mode_reg (mode2, xop2);
|
||||
|
||||
|
||||
pat = GEN_FCN (icode) (temp, xop0, xop1, xop2);
|
||||
|
||||
|
||||
emit_insn (pat);
|
||||
return temp;
|
||||
return temp;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -2192,7 +2192,7 @@ expand_parity (enum machine_mode mode, rtx op0, rtx target)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Extract the OMODE lowpart from VAL, which has IMODE. Under certain
|
||||
/* Extract the OMODE lowpart from VAL, which has IMODE. Under certain
|
||||
conditions, VAL may already be a SUBREG against which we cannot generate
|
||||
a further SUBREG. In this case, we expect forcing the value into a
|
||||
register will work around the situation. */
|
||||
|
|
@ -2282,7 +2282,7 @@ expand_absneg_bit (enum rtx_code code, enum machine_mode mode,
|
|||
{
|
||||
rtx targ_piece = operand_subword (target, i, 1, mode);
|
||||
rtx op0_piece = operand_subword_force (op0, i, mode);
|
||||
|
||||
|
||||
if (i == word)
|
||||
{
|
||||
temp = expand_binop (imode, code == ABS ? and_optab : xor_optab,
|
||||
|
|
@ -2854,7 +2854,7 @@ expand_copysign_bit (enum machine_mode mode, rtx op0, rtx op1, rtx target,
|
|||
{
|
||||
rtx targ_piece = operand_subword (target, i, 1, mode);
|
||||
rtx op0_piece = operand_subword_force (op0, i, mode);
|
||||
|
||||
|
||||
if (i == word)
|
||||
{
|
||||
if (!op0_is_abs)
|
||||
|
|
@ -2901,7 +2901,7 @@ expand_copysign_bit (enum machine_mode mode, rtx op0, rtx op1, rtx target,
|
|||
return target;
|
||||
}
|
||||
|
||||
/* Expand the C99 copysign operation. OP0 and OP1 must be the same
|
||||
/* Expand the C99 copysign operation. OP0 and OP1 must be the same
|
||||
scalar floating point mode. Return NULL if we do not know how to
|
||||
expand the operation inline. */
|
||||
|
||||
|
|
@ -5282,7 +5282,7 @@ debug_optab_libfuncs (void)
|
|||
}
|
||||
|
||||
/* Dump the conversion optabs. */
|
||||
for (i = 0; i < (int) CTI_MAX; ++i)
|
||||
for (i = 0; i < (int) COI_MAX; ++i)
|
||||
for (j = 0; j < NUM_MACHINE_MODES; ++j)
|
||||
for (k = 0; k < NUM_MACHINE_MODES; ++k)
|
||||
{
|
||||
|
|
@ -5377,7 +5377,7 @@ get_rtx_code (enum tree_code tcode, bool unsignedp)
|
|||
case GE_EXPR:
|
||||
code = unsignedp ? GEU : GE;
|
||||
break;
|
||||
|
||||
|
||||
case UNORDERED_EXPR:
|
||||
code = UNORDERED;
|
||||
break;
|
||||
|
|
@ -5423,10 +5423,10 @@ vector_compare_rtx (tree cond, bool unsignedp, enum insn_code icode)
|
|||
ensures that condition is a relational operation. */
|
||||
gcc_assert (COMPARISON_CLASS_P (cond));
|
||||
|
||||
rcode = get_rtx_code (TREE_CODE (cond), unsignedp);
|
||||
rcode = get_rtx_code (TREE_CODE (cond), unsignedp);
|
||||
t_op0 = TREE_OPERAND (cond, 0);
|
||||
t_op1 = TREE_OPERAND (cond, 1);
|
||||
|
||||
|
||||
/* Expand operands. */
|
||||
rtx_op0 = expand_expr (t_op0, NULL_RTX, TYPE_MODE (TREE_TYPE (t_op0)), 1);
|
||||
rtx_op1 = expand_expr (t_op1, NULL_RTX, TYPE_MODE (TREE_TYPE (t_op1)), 1);
|
||||
|
|
@ -5434,7 +5434,7 @@ vector_compare_rtx (tree cond, bool unsignedp, enum insn_code icode)
|
|||
if (!insn_data[icode].operand[4].predicate (rtx_op0, GET_MODE (rtx_op0))
|
||||
&& GET_MODE (rtx_op0) != VOIDmode)
|
||||
rtx_op0 = force_reg (GET_MODE (rtx_op0), rtx_op0);
|
||||
|
||||
|
||||
if (!insn_data[icode].operand[5].predicate (rtx_op1, GET_MODE (rtx_op1))
|
||||
&& GET_MODE (rtx_op1) != VOIDmode)
|
||||
rtx_op1 = force_reg (GET_MODE (rtx_op1), rtx_op1);
|
||||
|
|
@ -5443,8 +5443,8 @@ vector_compare_rtx (tree cond, bool unsignedp, enum insn_code icode)
|
|||
}
|
||||
|
||||
/* Return insn code for VEC_COND_EXPR EXPR. */
|
||||
|
||||
static inline enum insn_code
|
||||
|
||||
static inline enum insn_code
|
||||
get_vcond_icode (tree expr, enum machine_mode mode)
|
||||
{
|
||||
enum insn_code icode = CODE_FOR_nothing;
|
||||
|
|
@ -5485,7 +5485,7 @@ expand_vec_cond_expr (tree vec_cond_expr, rtx target)
|
|||
target = gen_reg_rtx (mode);
|
||||
|
||||
/* Get comparison rtx. First expand both cond expr operands. */
|
||||
comparison = vector_compare_rtx (TREE_OPERAND (vec_cond_expr, 0),
|
||||
comparison = vector_compare_rtx (TREE_OPERAND (vec_cond_expr, 0),
|
||||
unsignedp, icode);
|
||||
cc_op0 = XEXP (comparison, 0);
|
||||
cc_op1 = XEXP (comparison, 1);
|
||||
|
|
@ -5503,7 +5503,7 @@ expand_vec_cond_expr (tree vec_cond_expr, rtx target)
|
|||
rtx_op2 = force_reg (mode, rtx_op2);
|
||||
|
||||
/* Emit instruction! */
|
||||
emit_insn (GEN_FCN (icode) (target, rtx_op1, rtx_op2,
|
||||
emit_insn (GEN_FCN (icode) (target, rtx_op1, rtx_op2,
|
||||
comparison, cc_op0, cc_op1));
|
||||
|
||||
return target;
|
||||
|
|
@ -5629,8 +5629,8 @@ expand_bool_compare_and_swap (rtx mem, rtx old_val, rtx new_val, rtx target)
|
|||
}
|
||||
}
|
||||
|
||||
/* Without an appropriate setcc instruction, use a set of branches to
|
||||
get 1 and 0 stored into target. Presumably if the target has a
|
||||
/* Without an appropriate setcc instruction, use a set of branches to
|
||||
get 1 and 0 stored into target. Presumably if the target has a
|
||||
STORE_FLAG_VALUE that isn't 1, then this will get cleaned up by ifcvt. */
|
||||
|
||||
label0 = gen_label_rtx ();
|
||||
|
|
@ -5723,7 +5723,7 @@ expand_compare_and_swap_loop (rtx mem, rtx old_reg, rtx new_reg, rtx seq)
|
|||
}
|
||||
|
||||
/* This function generates the atomic operation MEM CODE= VAL. In this
|
||||
case, we do not care about any resulting value. Returns NULL if we
|
||||
case, we do not care about any resulting value. Returns NULL if we
|
||||
cannot generate the operation. */
|
||||
|
||||
rtx
|
||||
|
|
@ -5776,7 +5776,7 @@ expand_sync_operation (rtx mem, rtx val, enum rtx_code code)
|
|||
val = convert_modes (mode, GET_MODE (val), val, 1);
|
||||
if (!insn_data[icode].operand[1].predicate (val, mode))
|
||||
val = force_reg (mode, val);
|
||||
|
||||
|
||||
insn = GEN_FCN (icode) (mem, val);
|
||||
if (insn)
|
||||
{
|
||||
|
|
@ -5814,7 +5814,7 @@ expand_sync_operation (rtx mem, rtx val, enum rtx_code code)
|
|||
|
||||
/* This function generates the atomic operation MEM CODE= VAL. In this
|
||||
case, we do care about the resulting value: if AFTER is true then
|
||||
return the value MEM holds after the operation, if AFTER is false
|
||||
return the value MEM holds after the operation, if AFTER is false
|
||||
then return the value MEM holds before the operation. TARGET is an
|
||||
optional place for the result value to be stored. */
|
||||
|
||||
|
|
@ -5909,7 +5909,7 @@ expand_sync_fetch_operation (rtx mem, rtx val, enum rtx_code code,
|
|||
val = convert_modes (mode, GET_MODE (val), val, 1);
|
||||
if (!insn_data[icode].operand[2].predicate (val, mode))
|
||||
val = force_reg (mode, val);
|
||||
|
||||
|
||||
insn = GEN_FCN (icode) (target, mem, val);
|
||||
if (insn)
|
||||
{
|
||||
|
|
@ -5974,7 +5974,7 @@ expand_sync_fetch_operation (rtx mem, rtx val, enum rtx_code code,
|
|||
/* This function expands a test-and-set operation. Ideally we atomically
|
||||
store VAL in MEM and return the previous value in MEM. Some targets
|
||||
may not support this operation and only support VAL with the constant 1;
|
||||
in this case while the return value will be 0/1, but the exact value
|
||||
in this case while the return value will be 0/1, but the exact value
|
||||
stored in MEM is target defined. TARGET is an option place to stick
|
||||
the return value. */
|
||||
|
||||
|
|
|
|||
44
gcc/optabs.h
44
gcc/optabs.h
|
|
@ -377,33 +377,33 @@ extern GTY(()) optab optab_table[OTI_MAX];
|
|||
/* Conversion optabs have their own table and indexes. */
|
||||
enum convert_optab_index
|
||||
{
|
||||
CTI_sext,
|
||||
CTI_zext,
|
||||
CTI_trunc,
|
||||
COI_sext,
|
||||
COI_zext,
|
||||
COI_trunc,
|
||||
|
||||
CTI_sfix,
|
||||
CTI_ufix,
|
||||
COI_sfix,
|
||||
COI_ufix,
|
||||
|
||||
CTI_sfixtrunc,
|
||||
CTI_ufixtrunc,
|
||||
COI_sfixtrunc,
|
||||
COI_ufixtrunc,
|
||||
|
||||
CTI_sfloat,
|
||||
CTI_ufloat,
|
||||
COI_sfloat,
|
||||
COI_ufloat,
|
||||
|
||||
CTI_MAX
|
||||
COI_MAX
|
||||
};
|
||||
|
||||
extern GTY(()) convert_optab convert_optab_table[CTI_MAX];
|
||||
extern GTY(()) convert_optab convert_optab_table[COI_MAX];
|
||||
|
||||
#define sext_optab (convert_optab_table[CTI_sext])
|
||||
#define zext_optab (convert_optab_table[CTI_zext])
|
||||
#define trunc_optab (convert_optab_table[CTI_trunc])
|
||||
#define sfix_optab (convert_optab_table[CTI_sfix])
|
||||
#define ufix_optab (convert_optab_table[CTI_ufix])
|
||||
#define sfixtrunc_optab (convert_optab_table[CTI_sfixtrunc])
|
||||
#define ufixtrunc_optab (convert_optab_table[CTI_ufixtrunc])
|
||||
#define sfloat_optab (convert_optab_table[CTI_sfloat])
|
||||
#define ufloat_optab (convert_optab_table[CTI_ufloat])
|
||||
#define sext_optab (convert_optab_table[COI_sext])
|
||||
#define zext_optab (convert_optab_table[COI_zext])
|
||||
#define trunc_optab (convert_optab_table[COI_trunc])
|
||||
#define sfix_optab (convert_optab_table[COI_sfix])
|
||||
#define ufix_optab (convert_optab_table[COI_ufix])
|
||||
#define sfixtrunc_optab (convert_optab_table[COI_sfixtrunc])
|
||||
#define ufixtrunc_optab (convert_optab_table[COI_ufixtrunc])
|
||||
#define sfloat_optab (convert_optab_table[COI_sfloat])
|
||||
#define ufloat_optab (convert_optab_table[COI_ufloat])
|
||||
|
||||
/* These arrays record the insn_code of insns that may be needed to
|
||||
perform input and output reloads of special objects. They provide a
|
||||
|
|
@ -492,8 +492,8 @@ extern enum insn_code sync_lock_release[NUM_MACHINE_MODES];
|
|||
|
||||
/* Define functions given in optabs.c. */
|
||||
|
||||
extern rtx expand_ternary_op (enum machine_mode mode, optab ternary_optab,
|
||||
rtx op0, rtx op1, rtx op2, rtx target,
|
||||
extern rtx expand_ternary_op (enum machine_mode mode, optab ternary_optab,
|
||||
rtx op0, rtx op1, rtx op2, rtx target,
|
||||
int unsignedp);
|
||||
|
||||
/* Expand a binary operation given optab and rtx operands. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue