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

Side by Side Diff: src/x64/code-stubs-x64.h

Issue 6928020: Faster string equals in generated code. (Closed)
Patch Set: Created 9 years, 7 months 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 private: 357 private:
358 Major MajorKey() { return SubString; } 358 Major MajorKey() { return SubString; }
359 int MinorKey() { return 0; } 359 int MinorKey() { return 0; }
360 360
361 void Generate(MacroAssembler* masm); 361 void Generate(MacroAssembler* masm);
362 }; 362 };
363 363
364 364
365 class StringCompareStub: public CodeStub { 365 class StringCompareStub: public CodeStub {
366 public: 366 public:
367 explicit StringCompareStub() {} 367 StringCompareStub() {}
368 368
369 // Compare two flat ascii strings and returns result in rax after popping two 369 // Compares two flat ASCII strings and returns result in rax.
370 // arguments from the stack.
371 static void GenerateCompareFlatAsciiStrings(MacroAssembler* masm, 370 static void GenerateCompareFlatAsciiStrings(MacroAssembler* masm,
372 Register left, 371 Register left,
373 Register right, 372 Register right,
374 Register scratch1, 373 Register scratch1,
375 Register scratch2, 374 Register scratch2,
376 Register scratch3, 375 Register scratch3,
377 Register scratch4); 376 Register scratch4);
378 377
378 // Compares two flat ASCII strings for equality and returns result
379 // in rax.
380 static void GenerateFlatAsciiStringEquals(MacroAssembler* masm,
381 Register left,
382 Register right,
383 Register scratch1,
384 Register scratch2);
385
379 private: 386 private:
380 Major MajorKey() { return StringCompare; } 387 Major MajorKey() { return StringCompare; }
381 int MinorKey() { return 0; } 388 int MinorKey() { return 0; }
382 389
383 void Generate(MacroAssembler* masm); 390 void Generate(MacroAssembler* masm);
384 }; 391 };
385 392
386 393
387 class NumberToStringStub: public CodeStub { 394 class NumberToStringStub: public CodeStub {
388 public: 395 public:
(...skipping 28 matching lines...) Expand all
417 void Print() { 424 void Print() {
418 PrintF("NumberToStringStub\n"); 425 PrintF("NumberToStringStub\n");
419 } 426 }
420 #endif 427 #endif
421 }; 428 };
422 429
423 430
424 } } // namespace v8::internal 431 } } // namespace v8::internal
425 432
426 #endif // V8_X64_CODE_STUBS_X64_H_ 433 #endif // V8_X64_CODE_STUBS_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698