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

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

Issue 6092007: Write buffer based write barrier for IA32 and Crankshaft. Currently... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/gc/
Patch Set: '' Created 9 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « src/assembler.h ('k') | src/codegen.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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 29 matching lines...) Expand all
40 V(GenericBinaryOp) \ 40 V(GenericBinaryOp) \
41 V(TypeRecordingBinaryOp) \ 41 V(TypeRecordingBinaryOp) \
42 V(StringAdd) \ 42 V(StringAdd) \
43 V(StringCharAt) \ 43 V(StringCharAt) \
44 V(SubString) \ 44 V(SubString) \
45 V(StringCompare) \ 45 V(StringCompare) \
46 V(SmiOp) \ 46 V(SmiOp) \
47 V(Compare) \ 47 V(Compare) \
48 V(CompareIC) \ 48 V(CompareIC) \
49 V(MathPow) \ 49 V(MathPow) \
50 V(WriteBufferOverflow) \
50 V(TranscendentalCache) \ 51 V(TranscendentalCache) \
51 V(RecordWrite) \ 52 V(RecordWrite) \
52 V(ConvertToDouble) \ 53 V(ConvertToDouble) \
53 V(WriteInt32ToHeapNumber) \ 54 V(WriteInt32ToHeapNumber) \
54 V(IntegerMod) \ 55 V(IntegerMod) \
55 V(StackCheck) \ 56 V(StackCheck) \
56 V(FastNewClosure) \ 57 V(FastNewClosure) \
57 V(FastNewContext) \ 58 V(FastNewContext) \
58 V(FastCloneShallowArray) \ 59 V(FastCloneShallowArray) \
59 V(GenericUnaryOp) \ 60 V(GenericUnaryOp) \
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 } else { 566 } else {
566 PrintF("\n"); 567 PrintF("\n");
567 } 568 }
568 } 569 }
569 #endif 570 #endif
570 }; 571 };
571 572
572 573
573 class CEntryStub : public CodeStub { 574 class CEntryStub : public CodeStub {
574 public: 575 public:
575 explicit CEntryStub(int result_size) 576 explicit CEntryStub(int result_size,
576 : result_size_(result_size), save_doubles_(false) { } 577 SaveFPRegsMode save_doubles = kDontSaveFPRegs)
578 : result_size_(result_size), save_doubles_(save_doubles) { }
577 579
578 void Generate(MacroAssembler* masm); 580 void Generate(MacroAssembler* masm);
579 void SaveDoubles() { save_doubles_ = true; }
580 581
581 private: 582 private:
582 void GenerateCore(MacroAssembler* masm, 583 void GenerateCore(MacroAssembler* masm,
583 Label* throw_normal_exception, 584 Label* throw_normal_exception,
584 Label* throw_termination_exception, 585 Label* throw_termination_exception,
585 Label* throw_out_of_memory_exception, 586 Label* throw_out_of_memory_exception,
586 bool do_gc, 587 bool do_gc,
587 bool always_allocate_scope, 588 bool always_allocate_scope,
588 int alignment_skew = 0); 589 int alignment_skew = 0);
589 void GenerateThrowTOS(MacroAssembler* masm); 590 void GenerateThrowTOS(MacroAssembler* masm);
590 void GenerateThrowUncatchable(MacroAssembler* masm, 591 void GenerateThrowUncatchable(MacroAssembler* masm,
591 UncatchableExceptionType type); 592 UncatchableExceptionType type);
592 593
593 // Number of pointers/values returned. 594 // Number of pointers/values returned.
594 const int result_size_; 595 const int result_size_;
595 bool save_doubles_; 596 SaveFPRegsMode save_doubles_;
596 597
597 Major MajorKey() { return CEntry; } 598 Major MajorKey() { return CEntry; }
598 int MinorKey(); 599 int MinorKey();
599 600
600 const char* GetName() { return "CEntryStub"; } 601 const char* GetName() { return "CEntryStub"; }
601 }; 602 };
602 603
603 604
604 class JSEntryStub : public CodeStub { 605 class JSEntryStub : public CodeStub {
605 public: 606 public:
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 private: 899 private:
899 StringCharCodeAtGenerator char_code_at_generator_; 900 StringCharCodeAtGenerator char_code_at_generator_;
900 StringCharFromCodeGenerator char_from_code_generator_; 901 StringCharFromCodeGenerator char_from_code_generator_;
901 902
902 DISALLOW_COPY_AND_ASSIGN(StringCharAtGenerator); 903 DISALLOW_COPY_AND_ASSIGN(StringCharAtGenerator);
903 }; 904 };
904 905
905 } } // namespace v8::internal 906 } } // namespace v8::internal
906 907
907 #endif // V8_CODE_STUBS_H_ 908 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « src/assembler.h ('k') | src/codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698