Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
cwh_intrin.cxx File Reference
#include "defs.h"
#include "glob.h"
#include "stab.h"
#include "strtab.h"
#include "erfe90.h"
#include "errors.h"
#include "config_targ.h"
#include "wn.h"
#include "wn_util.h"
#include "const.h"
#include "wintrinsic.h"
#include "f90_utils.h"
#include "i_cvrt.h"
#include "cwh_defines.h"
#include "cwh_addr.h"
#include "cwh_block.h"
#include "cwh_stk.h"
#include "cwh_types.h"
#include "cwh_expr.h"
#include "cwh_stmt.h"
#include "cwh_preg.h"
#include "cwh_stab.h"
#include "cwh_intrin.h"
#include "cwh_intrin.i"
Include dependency graph for cwh_intrin.cxx:

Go to the source code of this file.

Defines

#define do_simple(name, numargs, numpop)
#define do_simple_nt(name, numargs, numpop)
#define MAXARGS   6
#define do_transformational(name, intrn, numargs, is_numeric)
#define do_transformational_cvt(name, intrn, numargs, is_numeric)
#define do_char_intrin(name, intr, args)   void name(TYPE type) {cwh_char_intrin(intr,args);}
#define do_char_intrin_nt(name, intr, args)   void name(void) {cwh_char_intrin(intr,args);}
#define SELECT_INTRINSIC(t, f)
#define UNIMPLEMENTED(fname)   void fname() {printf("%3d %s\n",__LINE__,# fname);}
#define IEEE_INTRINCALL(name, intrin, rty, nargs, warn_msg)   extern void name (void) {cwh_intrin_ieee_intrin_call_helper(INTRN_##intrin,rty,nargs,warn_msg,#intrin); }
#define SYNC_INTRIN(name, iname, nargs)

Functions

static WNcwh_intrin_get_return_value (TYPE_ID rtype, char *name)
static t_enum t_from_mtype (TYPE_ID ty)
static WNcwh_intrin_null_parm (void)
STcwh_intrin_make_intrinsic_symbol (char *name, TYPE_ID bt)
WNcwh_intrin_wrap_value_parm (WN *w)
WNcwh_intrin_wrap_ref_parm (WN *wa, TY_IDX ty)
WNcwh_intrin_wrap_char_parm (WN *wa, WN *sz)
static void simple_intrinsic (i_enum intrin, TYPE_ID bt, INT numargs, INT numpop)
static void simple_intrinsic_nt (i_enum intrin, INT numargs, INT numpop)
 do_simple (acos, 1, 0) do_simple(asin
 do_simple (atan, 1, 0) do_simple(atan2
 do_simple (conjg, 1, 0) do_simple(cos
 do_simple (cosh, 1, 0) do_simple(exp
 do_simple_nt (fraction, 1, 0) do_simple(ishftc
 do_simple (log, 1, 0) do_simple(log10
 do_simple (mod, 2, 0) do_simple(modulo
 do_simple (nextafter, 2, 0) do_simple(rrspace
 do_simple (sin, 1, 0) do_simple(sinh
 do_simple (space, 1, 1) do_simple(sqrt
 do_simple (tan, 1, 0) do_simple(tanh
 do_simple (acosd, 1, 0) do_simple(asind
 do_simple (atand, 1, 0) do_simple(atan2d
 do_simple (cosd, 1, 0) do_simple(sind
 do_simple (tand, 1, 0) void fei_complex(TYPE type)
void fei_abs (TYPE type)
void fei_cot (TYPE type)
void fei_exponentiate (TYPE type)
void fei_round (TYPE type)
void fei_trunc (TYPE type)
void fei_scale (TYPE type)
void fei_near (TYPE type)
void fei_set_exponent (TYPE type)
void fei_exponent (TYPE type)
void fei_pos_diff (TYPE type)
void fei_sign_xfer (TYPE type)
void fei_ieee_sign_xfer (TYPE type)
static void cwh_ceiling_floor (TYPE type, OPERATOR opr)
void fei_ceiling (TYPE type)
void fei_floor (TYPE type)
static void cwh_do_tranformational (INTRINSIC intrn, INT numargs, TYPE rtype, BOOL is_numeric, BOOL cvt_to_rtype)
 do_transformational (fei_spread, INTRN_SPREAD, 3, FALSE) do_transformational(fei_transpose
FALSE do_transformational (fei_all, INTRN_ALL, 2, TRUE) do_transformational(fei_any
FALSE TRUE do_transformational (fei_product, INTRN_PRODUCT, 3, TRUE) do_transformational(fei_sum
FALSE TRUE TRUE do_transformational (fei_maxval, INTRN_MAXVAL, 3, TRUE) do_transformational(fei_minval
FALSE TRUE TRUE TRUE do_transformational (fei_maxloc, INTRN_MAXLOC, 2, TRUE) do_transformational(fei_minloc
FALSE TRUE TRUE TRUE TRUE do_transformational (fei__maxloc, INTRN_MAXLOC, 3, TRUE) do_transformational(fei__minloc
FALSE TRUE TRUE TRUE TRUE TRUE do_transformational (fei_pack, INTRN_PACK, 3, FALSE) do_transformational(fei_unpack
FALSE TRUE TRUE TRUE TRUE TRUE
FALSE 
do_transformational (fei_cshift, INTRN_CSHIFT, 3, FALSE) do_transformational(fei_eoshift
FALSE TRUE TRUE TRUE TRUE TRUE
FALSE FALSE void 
fei_matmul (TYPE rtype)
void fei_dot_product (TYPE rtype)
void fei_dot_product_logical (TYPE rtype)
void fei_count (TYPE type)
void fei_malloc (void)
void fei_alloc (void)
void fei_mfree (void)
void fei_free (void)
void fei_ranf (TYPE type)
void fei_ranget (TYPE type)
void fei_ranset (TYPE type)
void fei_rtc (TYPE type)
void fei_unit (void)
void fei_length (void)
void fei_present (void)
void fei_ibits (TYPE type)
void fei_mvbits (TYPE type)
static void cwh_char_intrin (INTRINSIC intr, INT numargs)
 do_char_intrin (fei_scan, INTRN_SCAN, 3) do_char_intrin(fei_verify
 do_char_intrin_nt (fei_index, INTRN_F90INDEX, 3) do_char_intrin_nt(fei_len_trim
 do_char_intrin_nt (fei_len, INTRN_I4CLEN, 1) void fei_adjustl(TYPE type)
void fei_adjustr (TYPE type)
void fei_ieee_round (TYPE type)
void fei_ieee_trunc (TYPE type)
static void cwh_intrin_popcnt_leadz_helper (INTRINSIC i1, INTRINSIC i2, INTRINSIC i4, INTRINSIC i8, TYPE rtype, TYPE arg)
void fei_popcnt (TYPE type, TYPE arg)
void fei_leadz (TYPE type, TYPE arg)
void fei_poppar (TYPE type, TYPE arg)
static void cwh_funny_fp_intrinsic (INTRINSIC intr, INT numargs, WN **args, TY_IDX ty, BOOL cvtf4, WN *ae)
void fei_scalb (TYPE type)
void fei_remainder (TYPE type)
void fei_logb (TYPE type)
void fei_isfinite (TYPE type)
void fei_isnan (TYPE type)
void fei_isunordered (TYPE type)
void fei_fpclass (TYPE type)
static void cwh_intrin_ieee_intrin_call_helper (INTRINSIC intrin, TYPE_ID type, INT nargs, BOOL issue_warning, char *iname)
 IEEE_INTRINCALL (fei_set_all_estat, SET_IEEE_EXCEPTIONS, MTYPE_V, 1, TRUE)
 IEEE_INTRINCALL (fei_get_interupt, GET_IEEE_INTERRUPTS, MTYPE_I4, 0, FALSE)
 IEEE_INTRINCALL (fei_get_all_estat, GET_IEEE_EXCEPTIONS, MTYPE_I4, 0, TRUE)
 IEEE_INTRINCALL (fei_readsr, GET_IEEE_STATUS, MTYPE_I4, 1, TRUE)
 IEEE_INTRINCALL (fei_get_rmode, GET_IEEE_ROUNDING_MODE, MTYPE_I4, 0, FALSE)
 IEEE_INTRINCALL (fei_set_rmode, SET_IEEE_ROUNDING_MODE, MTYPE_V, 1, TRUE)
 IEEE_INTRINCALL (fei_set_ieee_stat, SET_IEEE_STATUS, MTYPE_V, 1, TRUE)
 IEEE_INTRINCALL (fei_set_interupt, SET_IEEE_INTERRUPTS, MTYPE_V, 1, TRUE)
 IEEE_INTRINCALL (fei_set_estat, SET_IEEE_EXCEPTION, MTYPE_V, 2, TRUE)
 IEEE_INTRINCALL (fei_dsbl_interupt, DISABLE_IEEE_INTERRUPT, MTYPE_V, 1, TRUE)
 IEEE_INTRINCALL (fei_enbl_interupt, ENABLE_IEEE_INTERRUPT, MTYPE_V, 1, TRUE)
static void cwh_intrin_ieee_intrin_helper (INTRINSIC intrin, BOOL issue_warning, char *iname)
void fei_test_interupt (void)
void fei_test_estat (void)
void fei_omp_set_lock (void)
void fei_omp_unset_lock (void)
void fei_omp_test_lock (void)
static void cwh_intrin_sync_intrin (INTRINSIC i4intrin, INTRINSIC i8intrin, TYPE_ID rtype, INT num_args)
void fei_synchronize (void)
void fei_lock_release (void)
WNcwh_intrin_call (INTRINSIC intr, INT16 numargs, WN **k, WN **sz, BOOL *v, TYPE_ID bt)
WNcwh_intrin_op (INTRINSIC intr, INT16 numargs, WN **k, WN **sz, BOOL *v, TYPE_ID bt)
static WNcwh_intrin_build (WN **k, INTRINSIC intr, TYPE_ID bt, INT numargs)
void cwh_whirl_simplfier_control (BOOL onoff)

Variables

static char * source_file = __FILE__
static STranget_st = NULL
static STranset_st = NULL
static STrtc_st = NULL
static STunit_st = NULL
static STlength_st = NULL
static STgetpos_st = NULL
static STomp_set_lock_st = NULL
static STomp_unset_lock_st = NULL
static STomp_test_lock_st = NULL
 INTRN_TRANSPOSE
FALSE INTRN_ANY
FALSE TRUE INTRN_SUM
FALSE TRUE TRUE INTRN_MINVAL
FALSE TRUE TRUE TRUE INTRN_MINLOC
FALSE TRUE TRUE TRUE TRUE TRUE INTRN_UNPACK
FALSE TRUE TRUE TRUE TRUE TRUE
FALSE 
INTRN_EOSHIFT
 INTRN_VERIFY
 INTRN_LENTRIM

Define Documentation

#define do_char_intrin (   name,
  intr,
  args 
)    void name(TYPE type) {cwh_char_intrin(intr,args);}

Definition at line 1656 of file cwh_intrin.cxx.

#define do_char_intrin_nt (   name,
  intr,
  args 
)    void name(void) {cwh_char_intrin(intr,args);}

Definition at line 1657 of file cwh_intrin.cxx.

#define do_simple (   name,
  numargs,
  numpop 
)
Value:
void fei_##name(TYPE type) \
{simple_intrinsic(i_##name,TY_mtype(cast_to_TY(t_TY(type))),numargs,numpop);}

Definition at line 429 of file cwh_intrin.cxx.

#define do_simple_nt (   name,
  numargs,
  numpop 
)
Value:
void fei_##name(void) \
{simple_intrinsic_nt(i_##name,numargs,numpop);}

Definition at line 432 of file cwh_intrin.cxx.

#define do_transformational (   name,
  intrn,
  numargs,
  is_numeric 
)
Value:
void name(TYPE rtype) \
   {cwh_do_tranformational(intrn,numargs,rtype,is_numeric,FALSE);}

Definition at line 1071 of file cwh_intrin.cxx.

#define do_transformational_cvt (   name,
  intrn,
  numargs,
  is_numeric 
)
Value:
void name(TYPE rtype) \
   {cwh_do_tranformational(intrn,numargs,rtype,is_numeric,TRUE);}

Definition at line 1074 of file cwh_intrin.cxx.

#define IEEE_INTRINCALL (   name,
  intrin,
  rty,
  nargs,
  warn_msg 
)    extern void name (void) {cwh_intrin_ieee_intrin_call_helper(INTRN_##intrin,rty,nargs,warn_msg,#intrin); }

Definition at line 2027 of file cwh_intrin.cxx.

#define MAXARGS   6

Definition at line 983 of file cwh_intrin.cxx.

Referenced by cwh_do_tranformational().

#define SELECT_INTRINSIC (   t,
  f 
)
Value:
((t==MTYPE_F4) ? INTRN_F4##f : \
                               ((t==MTYPE_F8) ? INTRN_F8##f : INTRN_FQ##f))

Definition at line 1848 of file cwh_intrin.cxx.

Referenced by fei_fpclass(), fei_isfinite(), fei_isnan(), fei_isunordered(), fei_logb(), fei_remainder(), and fei_scalb().

#define SYNC_INTRIN (   name,
  iname,
  nargs 
)
Value:
void name (TYPE type) {\
   cwh_intrin_sync_intrin(INTRN_##iname##_I4,INTRN_##iname##_I8,TY_mtype(cast_to_TY(t_TY(type))),nargs);}

Definition at line 2233 of file cwh_intrin.cxx.

#define UNIMPLEMENTED (   fname)    void fname() {printf("%3d %s\n",__LINE__,# fname);}

Definition at line 1992 of file cwh_intrin.cxx.


Function Documentation

static void cwh_ceiling_floor ( TYPE  type,
OPERATOR  opr 
) [static]

Definition at line 936 of file cwh_intrin.cxx.

References cast_to_TY, cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_make_typed_opcode(), cwh_stk_push(), NULL, t_TY, TY_mtype(), wn, WN_CreateExp1(), WN_item, and WN_rtype().

Referenced by fei_ceiling(), and fei_floor().

Here is the call graph for this function:

static void cwh_char_intrin ( INTRINSIC  intr,
INT  numargs 
) [static]
static WN* cwh_intrin_build ( WN **  k,
INTRINSIC  intr,
TYPE_ID  bt,
INT  numargs 
) [static]
static WN* cwh_intrin_get_return_value ( TYPE_ID  rtype,
char *  name 
) [static]
static void cwh_intrin_ieee_intrin_call_helper ( INTRINSIC  intrin,
TYPE_ID  type,
INT  nargs,
BOOL  issue_warning,
char *  iname 
) [static]

Definition at line 1998 of file cwh_intrin.cxx.

References Be_Type_Tbl, cwh_expr_operand(), cwh_intrin_call(), cwh_stk_push(), cwh_stmt_return_scalar(), EC_IEEE_Intrinsic_Warning, ErrMsg(), FALSE, MTYPE_V, NULL, Opt_Level, TRUE, wn, and WN_item.

Here is the call graph for this function:

static WN* cwh_intrin_null_parm ( void  ) [static]

Definition at line 161 of file cwh_intrin.cxx.

References Be_Type_Tbl, MTYPE_I4, MTYPE_V, wn, WN_CreateParm(), and WN_Zerocon().

Referenced by cwh_do_tranformational(), fei_dot_product(), and fei_dot_product_logical().

Here is the call graph for this function:

WN* cwh_intrin_op ( INTRINSIC  intr,
INT16  numargs,
WN **  k,
WN **  sz,
BOOL v,
TYPE_ID  bt 
)
static void cwh_intrin_popcnt_leadz_helper ( INTRINSIC  i1,
INTRINSIC  i2,
INTRINSIC  i4,
INTRINSIC  i8,
TYPE  rtype,
TYPE  arg 
) [static]
WN* cwh_intrin_wrap_char_parm ( WN wa,
WN sz 
)

Definition at line 268 of file cwh_intrin.cxx.

References cwh_intrin_wrap_ref_parm(), cwh_types_ch_parm_TY(), DevAssert, NULL, and wn.

Referenced by cwh_char_intrin(), cwh_intrin_call(), cwh_intrin_op(), cwh_stmt_call_helper(), and fei_stop().

Here is the call graph for this function:

Definition at line 2389 of file cwh_intrin.cxx.

References WN_Simplifier_Enable().

Here is the call graph for this function:

do_char_intrin ( fei_scan  ,
INTRN_SCAN  ,
 
)
do_char_intrin_nt ( fei_len  ,
INTRN_I4CLEN  ,
 
)

Definition at line 1663 of file cwh_intrin.cxx.

References cwh_stk_push(), cwh_stmt_character_icall(), INTRN_ADJUSTL, NULL, and WN_item.

Here is the call graph for this function:

do_simple ( acos  ,
,
 
)
do_simple ( atan  ,
,
 
)
do_simple ( conjg  ,
,
 
)
do_simple ( cosh  ,
,
 
)
do_simple ( log  ,
,
 
)
do_simple ( mod  ,
,
 
)
do_simple ( nextafter  ,
,
 
)
do_simple ( sin  ,
,
 
)
do_simple ( space  ,
,
 
)
do_simple ( tan  ,
,
 
)
do_simple ( acosd  ,
,
 
)
do_simple ( atand  ,
,
 
)
do_simple ( cosd  ,
,
 
)
do_simple ( tand  ,
,
 
)
do_simple_nt ( fraction  ,
,
 
)
void fei_adjustr ( TYPE  type)

Definition at line 1685 of file cwh_intrin.cxx.

References cwh_stk_push(), cwh_stmt_character_icall(), INTRN_ADJUSTR, NULL, and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_alloc ( void  )

Definition at line 1309 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_intrin_build(), cwh_stk_push(), Heap_Allocation_Threshold, NULL, Pointer_Mtype, wn, and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_ceiling ( TYPE  type)

Definition at line 957 of file cwh_intrin.cxx.

References cwh_ceiling_floor(), and OPR_CEIL.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_cot ( TYPE  type)

Definition at line 572 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_stk_push(), fei_div(), fei_tan(), MTYPE_I4, NULL, one, wn, WN_Intconst(), and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_exponent ( TYPE  type)

Definition at line 816 of file cwh_intrin.cxx.

References cast_to_TY, cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_build(), cwh_stk_push(), GET_ITAB_IOP, i_exponent, NULL, t_TY, TY_mtype(), wn, WN_item, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_floor ( TYPE  type)

Definition at line 962 of file cwh_intrin.cxx.

References cwh_ceiling_floor(), and OPR_FLOOR.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_fpclass ( TYPE  type)

Definition at line 1979 of file cwh_intrin.cxx.

References Be_Type_Tbl, cwh_expr_operand(), cwh_funny_fp_intrinsic(), FALSE, MTYPE_I4, NULL, SELECT_INTRINSIC, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_free ( void  )

Definition at line 1352 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_intrin_call(), Heap_Allocation_Threshold, NULL, Pointer_Mtype, TRUE, and val.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_ieee_round ( TYPE  type)

Definition at line 1693 of file cwh_intrin.cxx.

References fei_cvtop().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_isfinite ( TYPE  type)

Definition at line 1936 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_funny_fp_intrinsic(), logical4_ty, NULL, SELECT_INTRINSIC, TRUE, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_isnan ( TYPE  type)

Definition at line 1950 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_funny_fp_intrinsic(), FALSE, logical4_ty, NULL, SELECT_INTRINSIC, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_isunordered ( TYPE  type)

Definition at line 1964 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_funny_fp_intrinsic(), logical4_ty, NULL, SELECT_INTRINSIC, TRUE, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_leadz ( TYPE  type,
TYPE  arg 
)

Definition at line 1782 of file cwh_intrin.cxx.

References cwh_intrin_popcnt_leadz_helper(), INTRN_I1LEADZ, INTRN_I2LEADZ, INTRN_I4LEADZ, and INTRN_I8LEADZ.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_length ( void  )
void fei_lock_release ( void  )

Definition at line 2259 of file cwh_intrin.cxx.

References cwh_intrin_sync_intrin(), and MTYPE_V.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_mfree ( void  )

Definition at line 1336 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_intrin_call(), MTYPE_V, NULL, Pointer_Size, TRUE, val, and WN_Set_Call_Does_Mem_Free.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_near ( TYPE  type)

Definition at line 778 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_intrin_build(), cwh_stk_push(), GET_ITAB_IOP, i_near, NULL, wn, WN_DELETE_Tree(), WN_item, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_popcnt ( TYPE  type,
TYPE  arg 
)

Definition at line 1774 of file cwh_intrin.cxx.

References cwh_intrin_popcnt_leadz_helper(), INTRN_I1POPCNT, INTRN_I2POPCNT, INTRN_I4POPCNT, and INTRN_I8POPCNT.

Referenced by cvrt_exp_to_pdg(), and fei_poppar().

Here is the call graph for this function:

void fei_poppar ( TYPE  type,
TYPE  arg 
)

Definition at line 1789 of file cwh_intrin.cxx.

References cwh_expr_bincalc(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_stk_push(), fei_popcnt(), MTYPE_I4, NULL, OPR_BAND, wn, WN_Intconst(), and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_pos_diff ( TYPE  type)

Definition at line 838 of file cwh_intrin.cxx.

References cwh_stk_push(), fei_max(), fei_minus(), MTYPE_I4, WN_Intconst(), WN_item, and zero.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_present ( void  )

Definition at line 1518 of file cwh_intrin.cxx.

References arg, cwh_expr_address(), cwh_stk_push_typed(), f_NONE, logical4_ty, MTYPE_I4, OPR_NE, Pointer_Mtype, wn, WN_CreateExp2(), WN_Intconst(), and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_ranf ( TYPE  type)

Definition at line 1381 of file cwh_intrin.cxx.

References cast_to_TY, cwh_stk_push(), MTYPE_F4, NULL, OPC_F4INTRINSIC_OP, OPC_F8INTRINSIC_OP, t_TY, TY_mtype(), wn, WN_Create_Intrinsic(), and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_ranget ( TYPE  type)

Definition at line 1406 of file cwh_intrin.cxx.

References ADDR_item, Be_Type_Tbl, cwh_expr_address(), cwh_intrin_make_intrinsic_symbol(), cwh_stk_push(), cwh_stmt_call_helper(), f_T_PASSED, MTYPE_V, NULL, ST_item, and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_ranset ( TYPE  type)

Definition at line 1435 of file cwh_intrin.cxx.

References ADDR_item, Be_Type_Tbl, cwh_expr_address(), cwh_intrin_make_intrinsic_symbol(), cwh_stk_push(), cwh_stmt_call_helper(), f_T_PASSED, MTYPE_V, NULL, ST_item, wn, and WN_item.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_remainder ( TYPE  type)

Definition at line 1867 of file cwh_intrin.cxx.

References Be_Type_Tbl, cwh_convert_to_ty(), cwh_expr_operand(), cwh_funny_fp_intrinsic(), cwh_get_highest_type(), NULL, SELECT_INTRINSIC, and TRUE.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_scalb ( TYPE  type)

Definition at line 1852 of file cwh_intrin.cxx.

References Be_Type_Tbl, cwh_expr_operand(), cwh_funny_fp_intrinsic(), cwh_get_typed_operand(), MTYPE_I4, NULL, SELECT_INTRINSIC, TRUE, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_scale ( TYPE  type)

Definition at line 760 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_get_typed_operand(), cwh_intrin_build(), cwh_stk_push(), GET_ITAB_IOP, i_scale, MTYPE_I4, NULL, wn, WN_item, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_set_exponent ( TYPE  type)

Definition at line 798 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_get_typed_operand(), cwh_intrin_build(), cwh_stk_push(), GET_ITAB_IOP, i_set_exponent, MTYPE_I4, NULL, wn, WN_item, and WN_rtype().

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_sign_xfer ( TYPE  type)

Definition at line 851 of file cwh_intrin.cxx.

References cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_stk_push(), fei_abs(), fei_ge(), fei_select(), fei_uminus(), NULL, WN_COPY_Tree(), WN_item, WN_rtype(), and WN_Zerocon().

Referenced by cvrt_exp_to_pdg(), and fei_ieee_sign_xfer().

Here is the call graph for this function:

void fei_synchronize ( void  )

Definition at line 2253 of file cwh_intrin.cxx.

References cwh_intrin_sync_intrin(), and MTYPE_V.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_test_estat ( void  )

Definition at line 2088 of file cwh_intrin.cxx.

References cwh_intrin_ieee_intrin_helper(), INTRN_TEST_IEEE_EXCEPTION, and TRUE.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_test_interupt ( void  )

Definition at line 2082 of file cwh_intrin.cxx.

References cwh_intrin_ieee_intrin_helper(), FALSE, INTRN_TEST_IEEE_INTERRUPT, and NULL.

Referenced by cvrt_exp_to_pdg().

Here is the call graph for this function:

void fei_unit ( void  )
IEEE_INTRINCALL ( fei_set_all_estat  ,
SET_IEEE_EXCEPTIONS  ,
MTYPE_V  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_get_interupt  ,
GET_IEEE_INTERRUPTS  ,
MTYPE_I4  ,
,
FALSE   
)
IEEE_INTRINCALL ( fei_get_all_estat  ,
GET_IEEE_EXCEPTIONS  ,
MTYPE_I4  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_readsr  ,
GET_IEEE_STATUS  ,
MTYPE_I4  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_get_rmode  ,
GET_IEEE_ROUNDING_MODE  ,
MTYPE_I4  ,
,
FALSE   
)
IEEE_INTRINCALL ( fei_set_rmode  ,
SET_IEEE_ROUNDING_MODE  ,
MTYPE_V  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_set_ieee_stat  ,
SET_IEEE_STATUS  ,
MTYPE_V  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_set_interupt  ,
SET_IEEE_INTERRUPTS  ,
MTYPE_V  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_set_estat  ,
SET_IEEE_EXCEPTION  ,
MTYPE_V  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_dsbl_interupt  ,
DISABLE_IEEE_INTERRUPT  ,
MTYPE_V  ,
,
TRUE   
)
IEEE_INTRINCALL ( fei_enbl_interupt  ,
ENABLE_IEEE_INTERRUPT  ,
MTYPE_V  ,
,
TRUE   
)
static void simple_intrinsic_nt ( i_enum  intrin,
INT  numargs,
INT  numpop 
) [static]
static t_enum t_from_mtype ( TYPE_ID  ty) [static]

Definition at line 130 of file cwh_intrin.cxx.

References Fail_FmtAssertion(), MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, t_BAD, t_C4, t_C8, t_CQ, t_F4, t_F8, t_FQ, t_I1, t_I2, t_I4, and t_I8.

Here is the call graph for this function:


Variable Documentation

ST* getpos_st = NULL [static]

Definition at line 98 of file cwh_intrin.cxx.

Definition at line 1080 of file cwh_intrin.cxx.

Definition at line 1662 of file cwh_intrin.cxx.

Definition at line 1086 of file cwh_intrin.cxx.

Definition at line 1084 of file cwh_intrin.cxx.

Definition at line 1082 of file cwh_intrin.cxx.

Definition at line 1078 of file cwh_intrin.cxx.

Definition at line 1090 of file cwh_intrin.cxx.

Definition at line 1660 of file cwh_intrin.cxx.

ST* length_st = NULL [static]

Definition at line 97 of file cwh_intrin.cxx.

ST* omp_set_lock_st = NULL [static]

Definition at line 99 of file cwh_intrin.cxx.

ST* omp_test_lock_st = NULL [static]

Definition at line 101 of file cwh_intrin.cxx.

ST* omp_unset_lock_st = NULL [static]

Definition at line 100 of file cwh_intrin.cxx.

ST* ranget_st = NULL [static]

Definition at line 93 of file cwh_intrin.cxx.

ST* ranset_st = NULL [static]

Definition at line 94 of file cwh_intrin.cxx.

ST* rtc_st = NULL [static]

Definition at line 95 of file cwh_intrin.cxx.

char* source_file = __FILE__ [static]

Definition at line 51 of file cwh_intrin.cxx.

ST* unit_st = NULL [static]

Definition at line 96 of file cwh_intrin.cxx.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines