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

Side by Side Diff: src/a64/lithium-a64.h

Issue 145713002: A64: Implement LOsrEntry and LUnknownOSRValue (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: rebase Created 6 years, 10 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 V(SubI) \ 184 V(SubI) \
185 V(TaggedToI) \ 185 V(TaggedToI) \
186 V(ThisFunction) \ 186 V(ThisFunction) \
187 V(Throw) \ 187 V(Throw) \
188 V(ToFastProperties) \ 188 V(ToFastProperties) \
189 V(TransitionElementsKind) \ 189 V(TransitionElementsKind) \
190 V(TrapAllocationMemento) \ 190 V(TrapAllocationMemento) \
191 V(Typeof) \ 191 V(Typeof) \
192 V(TypeofIsAndBranch) \ 192 V(TypeofIsAndBranch) \
193 V(Uint32ToDouble) \ 193 V(Uint32ToDouble) \
194 V(UnknownOSRValue) \
194 V(ValueOf) \ 195 V(ValueOf) \
195 V(CheckMapValue) \ 196 V(CheckMapValue) \
196 V(LoadFieldByIndex) \ 197 V(LoadFieldByIndex) \
197 V(WrapReceiver) 198 V(WrapReceiver)
198 199
199 200
200 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ 201 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \
201 virtual Opcode opcode() const { return LInstruction::k##type; } \ 202 virtual Opcode opcode() const { return LInstruction::k##type; } \
202 virtual void CompileToNative(LCodeGen* generator); \ 203 virtual void CompileToNative(LCodeGen* generator); \
203 virtual const char* Mnemonic() const { return mnemonic; } \ 204 virtual const char* Mnemonic() const { return mnemonic; } \
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 int TempCount() { return T; } 314 int TempCount() { return T; }
314 LOperand* TempAt(int i) { return temps_[i]; } 315 LOperand* TempAt(int i) { return temps_[i]; }
315 316
316 protected: 317 protected:
317 EmbeddedContainer<LOperand*, R> results_; 318 EmbeddedContainer<LOperand*, R> results_;
318 EmbeddedContainer<LOperand*, I> inputs_; 319 EmbeddedContainer<LOperand*, I> inputs_;
319 EmbeddedContainer<LOperand*, T> temps_; 320 EmbeddedContainer<LOperand*, T> temps_;
320 }; 321 };
321 322
322 323
324 class LUnknownOSRValue: public LTemplateInstruction<1, 0, 0> {
325 public:
326 virtual bool HasInterestingComment(LCodeGen* gen) const { return false; }
327 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value")
328 };
329
330
323 template<int I, int T> 331 template<int I, int T>
324 class LControlInstruction: public LTemplateInstruction<0, I, T> { 332 class LControlInstruction: public LTemplateInstruction<0, I, T> {
325 public: 333 public:
326 LControlInstruction() : false_label_(NULL), true_label_(NULL) { } 334 LControlInstruction() : false_label_(NULL), true_label_(NULL) { }
327 335
328 virtual bool IsControl() const { return true; } 336 virtual bool IsControl() const { return true; }
329 337
330 int SuccessorCount() { return hydrogen()->SuccessorCount(); } 338 int SuccessorCount() { return hydrogen()->SuccessorCount(); }
331 HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); } 339 HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); }
332 340
(...skipping 2510 matching lines...) Expand 10 before | Expand all | Expand 10 after
2843 2851
2844 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2852 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2845 }; 2853 };
2846 2854
2847 #undef DECLARE_HYDROGEN_ACCESSOR 2855 #undef DECLARE_HYDROGEN_ACCESSOR
2848 #undef DECLARE_CONCRETE_INSTRUCTION 2856 #undef DECLARE_CONCRETE_INSTRUCTION
2849 2857
2850 } } // namespace v8::internal 2858 } } // namespace v8::internal
2851 2859
2852 #endif // V8_A64_LITHIUM_A64_H_ 2860 #endif // V8_A64_LITHIUM_A64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698