00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 static const char *source_file = __FILE__;
00061
00062 #ifdef _KEEP_RCS_ID
00063 static char *rcs_id = "$Source: /home/bos/bk/kpro64-pending/crayf90/sgi/SCCS/s.cwh_preg.cxx $ $Revision: 1.5 $";
00064 #endif
00065
00066
00067
00068 #include "defs.h"
00069 #include "stab.h"
00070 #include "strtab.h"
00071 #include "wn.h"
00072
00073
00074
00075 #include "cwh_defines.h"
00076 #include "cwh_preg.h"
00077 #include "cwh_addr.h"
00078
00079
00080
00081 #define MTYPE_MAX MTYPE_V
00082
00083 static TYPE_ID preg_ty_typeid[MTYPE_MAX];
00084 static TYPE_ID preg_bt_typeid[MTYPE_MAX];
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094 extern PREG_det
00095 cwh_preg_next_preg (TYPE_ID btype,
00096 const char * name,
00097 WN * home_wn )
00098 {
00099
00100 PREG_det det ;
00101
00102 DevAssert(((btype < MTYPE_MAX) && (btype > MTYPE_FIRST)),
00103 ("Missing mtype - 2")) ;
00104
00105 det.preg_ty = Be_Type_Tbl(preg_ty_typeid[btype]) ;
00106 det.preg_st = MTYPE_To_PREG(preg_bt_typeid[btype]);
00107 det.preg = Create_Preg (btype, name);
00108
00109 return (det);
00110 }
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 extern WN *
00123 cwh_preg_temp_save(const char * name, WN * expr )
00124 {
00125 TYPE_ID bt;
00126 PREG_NUM pr;
00127 WN *wn;
00128
00129 bt = WNRTY(expr);
00130 pr = Create_Preg(bt,Index_To_Str(Save_Str(name)));
00131 cwh_addr_store_ST(MTYPE_To_PREG(bt), pr, 0, expr);
00132
00133 wn = WN_LdidPreg(bt,pr);
00134 return wn;
00135 }
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145 extern void
00146 fe_preg_init (void)
00147 {
00148 int i ;
00149
00150 for (i = 0 ; i < MTYPE_MAX ; i++ ) {
00151 preg_ty_typeid[i] = MTYPE_I4 ;
00152 preg_bt_typeid[i] = MTYPE_I4 ;
00153 }
00154
00155 preg_ty_typeid[MTYPE_I8] = MTYPE_I8 ; preg_bt_typeid[MTYPE_I8] = MTYPE_I8 ;
00156
00157 preg_ty_typeid[MTYPE_U1] = MTYPE_U4 ;
00158 preg_ty_typeid[MTYPE_U2] = MTYPE_U4 ;
00159 preg_ty_typeid[MTYPE_U4] = MTYPE_U4 ;
00160 preg_ty_typeid[MTYPE_U8] = MTYPE_U8 ; preg_bt_typeid[MTYPE_U8] = MTYPE_I8 ;
00161
00162 preg_ty_typeid[MTYPE_F4] = MTYPE_F4 ; preg_bt_typeid[MTYPE_F4] = MTYPE_F4 ;
00163 preg_ty_typeid[MTYPE_F8] = MTYPE_F8 ; preg_bt_typeid[MTYPE_F8] = MTYPE_F8 ;
00164 preg_ty_typeid[MTYPE_FQ] = MTYPE_FQ ; preg_bt_typeid[MTYPE_FQ] = MTYPE_FQ ;
00165
00166 preg_ty_typeid[MTYPE_C4] = MTYPE_F4 ; preg_bt_typeid[MTYPE_C4] = MTYPE_F4 ;
00167 preg_ty_typeid[MTYPE_C8] = MTYPE_F8 ; preg_bt_typeid[MTYPE_C8] = MTYPE_F8 ;
00168 preg_ty_typeid[MTYPE_CQ] = MTYPE_FQ ; preg_bt_typeid[MTYPE_CQ] = MTYPE_FQ ;
00169
00170
00171 }
00172