Lines Matching refs:callexp
201 The original call expression is held in CALLEXP. */
204 call_builtin_fn (tree callexp, built_in_function code, int n, ...)
214 tree exp = build_call_expr_loc_array (EXPR_LOCATION (callexp),
217 return convert (TREE_TYPE (callexp), fold (exp));
228 expression is held in CALLEXP. */
231 expand_intrinsic_bsf (tree callexp)
235 tree arg = CALL_EXPR_ARG (callexp, 0);
246 return call_builtin_fn (callexp, code, 1, arg);
257 The original call expression is held in CALLEXP. */
260 expand_intrinsic_bsr (tree callexp)
264 tree arg = CALL_EXPR_ARG (callexp, 0);
276 tree result = call_builtin_fn (callexp, code, 1, arg);
284 return fold_convert (TREE_TYPE (callexp), result);
296 held in CALLEXP. */
299 expand_intrinsic_bt (intrinsic_code intrinsic, tree callexp)
301 tree ptr = CALL_EXPR_ARG (callexp, 0);
302 tree bitnum = CALL_EXPR_ARG (callexp, 1);
321 cond = build_condition (TREE_TYPE (callexp), d_truthvalue_conversion (cond),
322 build_minus_one_cst (TREE_TYPE (callexp)),
323 build_zero_cst (TREE_TYPE (callexp)));
359 tree tmp = build_local_temp (TREE_TYPE (callexp));
372 expression is held in CALLEXP. */
375 expand_intrinsic_popcnt (tree callexp)
377 tree arg = CALL_EXPR_ARG (callexp, 0);
388 return call_builtin_fn (callexp, code, 1, arg);
403 expand_intrinsic_rotate (intrinsic_code intrinsic, tree callexp)
405 tree type = TREE_TYPE (callexp);
406 tree value = CALL_EXPR_ARG (callexp, 0);
421 count = CALL_EXPR_ARG (callexp, 1);
424 tree callee = CALL_EXPR_FN (callexp);
449 call expression is held in CALLEXP. */
452 expand_intrinsic_copysign (tree callexp)
454 tree to = CALL_EXPR_ARG (callexp, 0);
455 tree from = CALL_EXPR_ARG (callexp, 1);
476 return call_builtin_fn (callexp, code, 2, to, from);
487 The original call expression is held in CALLEXP. */
490 expand_intrinsic_pow (tree callexp)
492 tree base = CALL_EXPR_ARG (callexp, 0);
493 tree exponent = CALL_EXPR_ARG (callexp, 1);
505 return call_builtin_fn (callexp, DECL_FUNCTION_CODE (builtin), 2,
517 point type T. The original call expression is held in CALLEXP. */
520 expand_intrinsic_toprec (tree callexp)
522 tree f = CALL_EXPR_ARG (callexp, 0);
523 tree type = TREE_TYPE (callexp);
536 The original call expression is held in CALLEXP. */
539 expand_intrinsic_vaarg (tree callexp)
541 callexp, 0);
547 if (call_expr_nargs (callexp) == 1)
548 type = TREE_TYPE (callexp);
551 parmn = CALL_EXPR_ARG (callexp, 1);
568 tree exp = build1_loc (EXPR_LOCATION (callexp), VA_ARG_EXPR, type, ap);
583 parameter. The original call expression is held in CALLEXP. */
586 expand_intrinsic_vastart (tree callexp)
588 tree ap = CALL_EXPR_ARG (callexp, 0);
589 tree parmn = CALL_EXPR_ARG (callexp, 1);
608 return call_builtin_fn (callexp, BUILT_IN_VA_START, 2, ap, parmn);
623 expression is held in CALLEXP. */
626 expand_intrinsic_checkedint (intrinsic_code intrinsic, tree callexp)
628 tree type = TREE_TYPE (callexp);
641 x = CALL_EXPR_ARG (callexp, 0);
642 y = CALL_EXPR_ARG (callexp, 1);
643 overflow = CALL_EXPR_ARG (callexp, 2);
651 x = CALL_EXPR_ARG (callexp, 0);
652 y = CALL_EXPR_ARG (callexp, 1);
653 overflow = CALL_EXPR_ARG (callexp, 2);
662 x = CALL_EXPR_ARG (callexp, 0);
663 y = CALL_EXPR_ARG (callexp, 1);
664 overflow = CALL_EXPR_ARG (callexp, 2);
672 y = CALL_EXPR_ARG (callexp, 0);
673 overflow = CALL_EXPR_ARG (callexp, 1);
682 = build_call_expr_internal_loc (EXPR_LOCATION (callexp), icode,
711 in the same thread. The original call expression is held in CALLEXP. */
714 expand_volatile_load (tree callexp)
716 tree ptr = CALL_EXPR_ARG (callexp, 0);
739 in the same thread. The original call expression is held in CALLEXP. */
742 expand_volatile_store (tree callexp)
744 tree ptr = CALL_EXPR_ARG (callexp, 0);
755 tree value = CALL_EXPR_ARG (callexp, 1);
759 /* If CALLEXP is for an intrinsic , expand and return inlined compiler
764 maybe_expand_intrinsic (tree callexp)
766 tree callee = CALL_EXPR_FN (callexp);
772 return callexp;
776 return callexp;
784 return callexp;
788 return expand_intrinsic_bsf (callexp);
792 return expand_intrinsic_bsr (callexp);
802 return expand_intrinsic_bt (intrinsic, callexp);
806 return expand_intrinsic_popcnt (callexp);
812 return expand_intrinsic_rotate (intrinsic, callexp);
855 return call_builtin_fn (callexp, code, 1,
856 CALL_EXPR_ARG (callexp, 0));
865 return call_builtin_fn (callexp, code, 2,
866 CALL_EXPR_ARG (callexp, 0),
867 CALL_EXPR_ARG (callexp, 1));
872 return call_builtin_fn (callexp, code, 3,
873 CALL_EXPR_ARG (callexp, 0),
874 CALL_EXPR_ARG (callexp, 1),
875 CALL_EXPR_ARG (callexp, 2));
879 return expand_intrinsic_copysign (callexp);
882 return expand_intrinsic_pow (callexp);
887 return expand_intrinsic_toprec (callexp);
891 return expand_intrinsic_vaarg (callexp);
894 return expand_intrinsic_vastart (callexp);
911 return expand_intrinsic_checkedint (intrinsic, callexp);
917 return expand_volatile_load (callexp);
923 return expand_volatile_store (callexp);