1137 1138 // GHASH block processing 1139 const TypeFunc* OptoRuntime::ghash_processBlocks_Type() { 1140 int argcnt = 4; 1141 1142 const Type** fields = TypeTuple::fields(argcnt); 1143 int argp = TypeFunc::Parms; 1144 fields[argp++] = TypePtr::NOTNULL; // state 1145 fields[argp++] = TypePtr::NOTNULL; // subkeyH 1146 fields[argp++] = TypePtr::NOTNULL; // data 1147 fields[argp++] = TypeInt::INT; // blocks 1148 assert(argp == TypeFunc::Parms+argcnt, "correct decoding"); 1149 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields); 1150 1151 // result type needed 1152 fields = TypeTuple::fields(1); 1153 fields[TypeFunc::Parms+0] = NULL; // void 1154 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields); 1155 return TypeFunc::make(domain, range); 1156 } 1157 1158 //------------- Interpreter state access for on stack replacement 1159 const TypeFunc* OptoRuntime::osr_end_Type() { 1160 // create input type (domain) 1161 const Type **fields = TypeTuple::fields(1); 1162 fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf 1163 const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields); 1164 1165 // create result type 1166 fields = TypeTuple::fields(1); 1167 // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop 1168 fields[TypeFunc::Parms+0] = NULL; // void 1169 const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields); 1170 return TypeFunc::make(domain, range); 1171 } 1172 1173 //-------------- methodData update helpers 1174 1175 const TypeFunc* OptoRuntime::profile_receiver_type_Type() { 1176 // create input type (domain) | 1137 1138 // GHASH block processing 1139 const TypeFunc* OptoRuntime::ghash_processBlocks_Type() { 1140 int argcnt = 4; 1141 1142 const Type** fields = TypeTuple::fields(argcnt); 1143 int argp = TypeFunc::Parms; 1144 fields[argp++] = TypePtr::NOTNULL; // state 1145 fields[argp++] = TypePtr::NOTNULL; // subkeyH 1146 fields[argp++] = TypePtr::NOTNULL; // data 1147 fields[argp++] = TypeInt::INT; // blocks 1148 assert(argp == TypeFunc::Parms+argcnt, "correct decoding"); 1149 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields); 1150 1151 // result type needed 1152 fields = TypeTuple::fields(1); 1153 fields[TypeFunc::Parms+0] = NULL; // void 1154 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields); 1155 return TypeFunc::make(domain, range); 1156 } 1157 // Base64 encode function 1158 const TypeFunc* OptoRuntime::base64_encodeBlock_Type() { 1159 int argcnt = 6; 1160 1161 const Type** fields = TypeTuple::fields(argcnt); 1162 int argp = TypeFunc::Parms; 1163 fields[argp++] = TypePtr::NOTNULL; // src array 1164 fields[argp++] = TypeInt::INT; // offset 1165 fields[argp++] = TypeInt::INT; // length 1166 fields[argp++] = TypePtr::NOTNULL; // dest array 1167 fields[argp++] = TypeInt::INT; // dp 1168 fields[argp++] = TypeInt::BOOL; // isURL 1169 assert(argp == TypeFunc::Parms + argcnt, "correct decoding"); 1170 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields); 1171 1172 // result type needed 1173 fields = TypeTuple::fields(1); 1174 fields[TypeFunc::Parms + 0] = NULL; // void 1175 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields); 1176 return TypeFunc::make(domain, range); 1177 } 1178 1179 //------------- Interpreter state access for on stack replacement 1180 const TypeFunc* OptoRuntime::osr_end_Type() { 1181 // create input type (domain) 1182 const Type **fields = TypeTuple::fields(1); 1183 fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf 1184 const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields); 1185 1186 // create result type 1187 fields = TypeTuple::fields(1); 1188 // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop 1189 fields[TypeFunc::Parms+0] = NULL; // void 1190 const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields); 1191 return TypeFunc::make(domain, range); 1192 } 1193 1194 //-------------- methodData update helpers 1195 1196 const TypeFunc* OptoRuntime::profile_receiver_type_Type() { 1197 // create input type (domain) |