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

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

Issue 10910161: Partial ia32 implementation of optimized try/catch (by Kevin Millikin) (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed build. Created 8 years, 3 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/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/lithium-ia32.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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 V(CheckFunction) \ 66 V(CheckFunction) \
67 V(CheckInstanceType) \ 67 V(CheckInstanceType) \
68 V(CheckMaps) \ 68 V(CheckMaps) \
69 V(CheckNonSmi) \ 69 V(CheckNonSmi) \
70 V(CheckPrototypeMaps) \ 70 V(CheckPrototypeMaps) \
71 V(CheckSmi) \ 71 V(CheckSmi) \
72 V(ClampDToUint8) \ 72 V(ClampDToUint8) \
73 V(ClampIToUint8) \ 73 V(ClampIToUint8) \
74 V(ClampTToUint8) \ 74 V(ClampTToUint8) \
75 V(ClassOfTestAndBranch) \ 75 V(ClassOfTestAndBranch) \
76 V(CmpConstantEqAndBranch) \
76 V(CmpIDAndBranch) \ 77 V(CmpIDAndBranch) \
78 V(CmpMapAndBranch) \
77 V(CmpObjectEqAndBranch) \ 79 V(CmpObjectEqAndBranch) \
78 V(CmpMapAndBranch) \
79 V(CmpT) \ 80 V(CmpT) \
80 V(CmpConstantEqAndBranch) \
81 V(ConstantD) \ 81 V(ConstantD) \
82 V(ConstantI) \ 82 V(ConstantI) \
83 V(ConstantT) \ 83 V(ConstantT) \
84 V(Context) \ 84 V(Context) \
85 V(DeclareGlobals) \ 85 V(DeclareGlobals) \
86 V(DeleteProperty) \ 86 V(DeleteProperty) \
87 V(Deoptimize) \ 87 V(Deoptimize) \
88 V(DivI) \ 88 V(DivI) \
89 V(DoubleToI) \ 89 V(DoubleToI) \
90 V(ElementsKind) \ 90 V(ElementsKind) \
91 V(EnterTry) \
91 V(FastLiteral) \ 92 V(FastLiteral) \
92 V(FixedArrayBaseLength) \ 93 V(FixedArrayBaseLength) \
93 V(FunctionLiteral) \ 94 V(FunctionLiteral) \
94 V(GetCachedArrayIndex) \ 95 V(GetCachedArrayIndex) \
95 V(GlobalObject) \ 96 V(GlobalObject) \
96 V(GlobalReceiver) \ 97 V(GlobalReceiver) \
97 V(Goto) \ 98 V(Goto) \
98 V(HasCachedArrayIndexAndBranch) \ 99 V(HasCachedArrayIndexAndBranch) \
99 V(HasInstanceTypeAndBranch) \ 100 V(HasInstanceTypeAndBranch) \
100 V(In) \ 101 V(In) \
101 V(InstanceOf) \ 102 V(InstanceOf) \
102 V(InstanceOfKnownGlobal) \ 103 V(InstanceOfKnownGlobal) \
103 V(InstructionGap) \ 104 V(InstructionGap) \
104 V(Integer32ToDouble) \ 105 V(Integer32ToDouble) \
105 V(Uint32ToDouble) \ 106 V(Uint32ToDouble) \
106 V(InvokeFunction) \ 107 V(InvokeFunction) \
107 V(IsConstructCallAndBranch) \ 108 V(IsConstructCallAndBranch) \
108 V(IsNilAndBranch) \ 109 V(IsNilAndBranch) \
109 V(IsObjectAndBranch) \ 110 V(IsObjectAndBranch) \
111 V(IsSmiAndBranch) \
110 V(IsStringAndBranch) \ 112 V(IsStringAndBranch) \
111 V(IsSmiAndBranch) \
112 V(IsUndetectableAndBranch) \ 113 V(IsUndetectableAndBranch) \
113 V(JSArrayLength) \ 114 V(JSArrayLength) \
114 V(Label) \ 115 V(Label) \
115 V(LazyBailout) \ 116 V(LazyBailout) \
117 V(LeaveTry) \
116 V(LoadContextSlot) \ 118 V(LoadContextSlot) \
117 V(LoadElements) \ 119 V(LoadElements) \
118 V(LoadExternalArrayPointer) \ 120 V(LoadExternalArrayPointer) \
119 V(LoadFunctionPrototype) \ 121 V(LoadFunctionPrototype) \
120 V(LoadGlobalCell) \ 122 V(LoadGlobalCell) \
121 V(LoadGlobalGeneric) \ 123 V(LoadGlobalGeneric) \
124 V(LoadKeyedFastDoubleElement) \
122 V(LoadKeyedFastElement) \ 125 V(LoadKeyedFastElement) \
123 V(LoadKeyedFastDoubleElement) \
124 V(LoadKeyedGeneric) \ 126 V(LoadKeyedGeneric) \
125 V(LoadKeyedSpecializedArrayElement) \ 127 V(LoadKeyedSpecializedArrayElement) \
126 V(LoadNamedField) \ 128 V(LoadNamedField) \
127 V(LoadNamedFieldPolymorphic) \ 129 V(LoadNamedFieldPolymorphic) \
128 V(LoadNamedGeneric) \ 130 V(LoadNamedGeneric) \
129 V(MapEnumLength) \ 131 V(MapEnumLength) \
130 V(MathFloorOfDiv) \ 132 V(MathFloorOfDiv) \
131 V(MathMinMax) \ 133 V(MathMinMax) \
132 V(MathPowHalf) \ 134 V(MathPowHalf) \
133 V(ModI) \ 135 V(ModI) \
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 LLabel* replacement() const { return replacement_; } 406 LLabel* replacement() const { return replacement_; }
405 void set_replacement(LLabel* label) { replacement_ = label; } 407 void set_replacement(LLabel* label) { replacement_ = label; }
406 bool HasReplacement() const { return replacement_ != NULL; } 408 bool HasReplacement() const { return replacement_ != NULL; }
407 409
408 private: 410 private:
409 Label label_; 411 Label label_;
410 LLabel* replacement_; 412 LLabel* replacement_;
411 }; 413 };
412 414
413 415
416 class LEnterTry: public LTemplateInstruction<0, 0, 0> {
417 public:
418 DECLARE_CONCRETE_INSTRUCTION(EnterTry, "enter-try")
419 DECLARE_HYDROGEN_ACCESSOR(EnterTry);
420
421 int index() { return hydrogen()->index(); }
422 };
423
424
425 class LLeaveTry: public LTemplateInstruction<0, 0, 0> {
426 public:
427 DECLARE_CONCRETE_INSTRUCTION(LeaveTry, "leave-try")
428 };
429
430
414 class LParameter: public LTemplateInstruction<1, 0, 0> { 431 class LParameter: public LTemplateInstruction<1, 0, 0> {
415 public: 432 public:
416 DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter") 433 DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter")
417 }; 434 };
418 435
419 436
420 class LCallStub: public LTemplateInstruction<1, 1, 0> { 437 class LCallStub: public LTemplateInstruction<1, 1, 0> {
421 public: 438 public:
422 explicit LCallStub(LOperand* context) { 439 explicit LCallStub(LOperand* context) {
423 inputs_[0] = context; 440 inputs_[0] = context;
(...skipping 2134 matching lines...) Expand 10 before | Expand all | Expand 10 after
2558 2575
2559 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2576 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2560 }; 2577 };
2561 2578
2562 #undef DECLARE_HYDROGEN_ACCESSOR 2579 #undef DECLARE_HYDROGEN_ACCESSOR
2563 #undef DECLARE_CONCRETE_INSTRUCTION 2580 #undef DECLARE_CONCRETE_INSTRUCTION
2564 2581
2565 } } // namespace v8::internal 2582 } } // namespace v8::internal
2566 2583
2567 #endif // V8_IA32_LITHIUM_IA32_H_ 2584 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/lithium-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698