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

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: updates Created 6 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/a64/full-codegen-a64.cc ('k') | src/a64/lithium-a64.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 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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 V(SubI) \ 186 V(SubI) \
187 V(TaggedToI) \ 187 V(TaggedToI) \
188 V(ThisFunction) \ 188 V(ThisFunction) \
189 V(Throw) \ 189 V(Throw) \
190 V(ToFastProperties) \ 190 V(ToFastProperties) \
191 V(TransitionElementsKind) \ 191 V(TransitionElementsKind) \
192 V(TrapAllocationMemento) \ 192 V(TrapAllocationMemento) \
193 V(Typeof) \ 193 V(Typeof) \
194 V(TypeofIsAndBranch) \ 194 V(TypeofIsAndBranch) \
195 V(Uint32ToDouble) \ 195 V(Uint32ToDouble) \
196 V(UnknownOSRValue) \
196 V(ValueOf) \ 197 V(ValueOf) \
197 V(CheckMapValue) \ 198 V(CheckMapValue) \
198 V(LoadFieldByIndex) \ 199 V(LoadFieldByIndex) \
199 V(WrapReceiver) 200 V(WrapReceiver)
200 201
201 202
202 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ 203 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \
203 virtual Opcode opcode() const { return LInstruction::k##type; } \ 204 virtual Opcode opcode() const { return LInstruction::k##type; } \
204 virtual void CompileToNative(LCodeGen* generator); \ 205 virtual void CompileToNative(LCodeGen* generator); \
205 virtual const char* Mnemonic() const { return mnemonic; } \ 206 virtual const char* Mnemonic() const { return mnemonic; } \
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 int TempCount() { return T; } 316 int TempCount() { return T; }
316 LOperand* TempAt(int i) { return temps_[i]; } 317 LOperand* TempAt(int i) { return temps_[i]; }
317 318
318 protected: 319 protected:
319 EmbeddedContainer<LOperand*, R> results_; 320 EmbeddedContainer<LOperand*, R> results_;
320 EmbeddedContainer<LOperand*, I> inputs_; 321 EmbeddedContainer<LOperand*, I> inputs_;
321 EmbeddedContainer<LOperand*, T> temps_; 322 EmbeddedContainer<LOperand*, T> temps_;
322 }; 323 };
323 324
324 325
326 class LUnknownOSRValue: public LTemplateInstruction<1, 0, 0> {
327 public:
328 virtual bool HasInterestingComment(LCodeGen* gen) const { return false; }
329 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value")
330 };
331
332
325 template<int I, int T> 333 template<int I, int T>
326 class LControlInstruction: public LTemplateInstruction<0, I, T> { 334 class LControlInstruction: public LTemplateInstruction<0, I, T> {
327 public: 335 public:
328 LControlInstruction() : false_label_(NULL), true_label_(NULL) { } 336 LControlInstruction() : false_label_(NULL), true_label_(NULL) { }
329 337
330 virtual bool IsControl() const { return true; } 338 virtual bool IsControl() const { return true; }
331 339
332 int SuccessorCount() { return hydrogen()->SuccessorCount(); } 340 int SuccessorCount() { return hydrogen()->SuccessorCount(); }
333 HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); } 341 HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); }
334 342
(...skipping 2541 matching lines...) Expand 10 before | Expand all | Expand 10 after
2876 2884
2877 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2885 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2878 }; 2886 };
2879 2887
2880 #undef DECLARE_HYDROGEN_ACCESSOR 2888 #undef DECLARE_HYDROGEN_ACCESSOR
2881 #undef DECLARE_CONCRETE_INSTRUCTION 2889 #undef DECLARE_CONCRETE_INSTRUCTION
2882 2890
2883 } } // namespace v8::internal 2891 } } // namespace v8::internal
2884 2892
2885 #endif // V8_A64_LITHIUM_A64_H_ 2893 #endif // V8_A64_LITHIUM_A64_H_
OLDNEW
« no previous file with comments | « src/a64/full-codegen-a64.cc ('k') | src/a64/lithium-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698