Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: src/hydrogen.h

Issue 61893009: Add initial hydrogenized NewStringAddStub. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add test case for --new-string-add. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/flag-definitions.h ('k') | src/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1269 HValue* length); 1269 HValue* length);
1270 1270
1271 void BuildTransitionElementsKind(HValue* object, 1271 void BuildTransitionElementsKind(HValue* object,
1272 HValue* map, 1272 HValue* map,
1273 ElementsKind from_kind, 1273 ElementsKind from_kind,
1274 ElementsKind to_kind, 1274 ElementsKind to_kind,
1275 bool is_jsarray); 1275 bool is_jsarray);
1276 1276
1277 HValue* BuildNumberToString(HValue* object, Handle<Type> type); 1277 HValue* BuildNumberToString(HValue* object, Handle<Type> type);
1278 1278
1279 // Computes the size for a sequential string of the given length and encoding.
1280 HValue* BuildSeqStringSizeFor(HValue* length,
1281 String::Encoding encoding);
1282 // Copies characters from one sequential string to another.
1283 void BuildCopySeqStringChars(HValue* src,
1284 HValue* src_offset,
1285 String::Encoding src_encoding,
1286 HValue* dst,
1287 HValue* dst_offset,
1288 String::Encoding dst_encoding,
1289 HValue* length);
1290 // Both operands are non-empty strings.
1291 HValue* BuildUncheckedStringAdd(HValue* left,
1292 HValue* right,
1293 PretenureFlag pretenure_flag);
1294 // Both operands are strings.
1295 HValue* BuildStringAdd(HValue* left,
1296 HValue* right,
1297 PretenureFlag pretenure_flag);
1298
1279 HInstruction* BuildUncheckedMonomorphicElementAccess( 1299 HInstruction* BuildUncheckedMonomorphicElementAccess(
1280 HValue* checked_object, 1300 HValue* checked_object,
1281 HValue* key, 1301 HValue* key,
1282 HValue* val, 1302 HValue* val,
1283 bool is_js_array, 1303 bool is_js_array,
1284 ElementsKind elements_kind, 1304 ElementsKind elements_kind,
1285 bool is_store, 1305 bool is_store,
1286 LoadKeyedHoleMode load_mode, 1306 LoadKeyedHoleMode load_mode,
1287 KeyedAccessStoreMode store_mode); 1307 KeyedAccessStoreMode store_mode);
1288 1308
1289 HInstruction* AddElementAccess( 1309 HInstruction* AddElementAccess(
1290 HValue* elements, 1310 HValue* elements,
1291 HValue* checked_key, 1311 HValue* checked_key,
1292 HValue* val, 1312 HValue* val,
1293 HValue* dependency, 1313 HValue* dependency,
1294 ElementsKind elements_kind, 1314 ElementsKind elements_kind,
1295 bool is_store, 1315 bool is_store,
1296 LoadKeyedHoleMode load_mode = NEVER_RETURN_HOLE); 1316 LoadKeyedHoleMode load_mode = NEVER_RETURN_HOLE);
1297 1317
1298 HLoadNamedField* BuildLoadNamedField(HValue* object, HObjectAccess access); 1318 HLoadNamedField* BuildLoadNamedField(HValue* object, HObjectAccess access);
1299 HInstruction* AddLoadNamedField(HValue* object, HObjectAccess access); 1319 HInstruction* AddLoadNamedField(HValue* object, HObjectAccess access);
1300 HInstruction* BuildLoadStringLength(HValue* object, HValue* checked_value); 1320 HInstruction* BuildLoadStringLength(HValue* object, HValue* checked_value);
1301 HStoreNamedField* AddStoreMapConstant(HValue* object, Handle<Map>); 1321 HStoreNamedField* AddStoreMapConstant(HValue* object, Handle<Map> map);
1322 HStoreNamedField* AddStoreMapConstantNoWriteBarrier(HValue* object,
1323 Handle<Map> map) {
1324 HStoreNamedField* store_map = AddStoreMapConstant(object, map);
1325 store_map->SkipWriteBarrier();
1326 return store_map;
1327 }
1302 HLoadNamedField* AddLoadElements(HValue* object); 1328 HLoadNamedField* AddLoadElements(HValue* object);
1303 1329
1304 bool MatchRotateRight(HValue* left, 1330 bool MatchRotateRight(HValue* left,
1305 HValue* right, 1331 HValue* right,
1306 HValue** operand, 1332 HValue** operand,
1307 HValue** shift_amount); 1333 HValue** shift_amount);
1308 1334
1309 HInstruction* BuildBinaryOperation(Token::Value op, 1335 HInstruction* BuildBinaryOperation(Token::Value op,
1310 HValue* left, 1336 HValue* left,
1311 HValue* right, 1337 HValue* right,
(...skipping 1184 matching lines...) Expand 10 before | Expand all | Expand 10 after
2496 } 2522 }
2497 2523
2498 private: 2524 private:
2499 HGraphBuilder* builder_; 2525 HGraphBuilder* builder_;
2500 }; 2526 };
2501 2527
2502 2528
2503 } } // namespace v8::internal 2529 } } // namespace v8::internal
2504 2530
2505 #endif // V8_HYDROGEN_H_ 2531 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/flag-definitions.h ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698