OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_HYDROGEN_H_ | 5 #ifndef V8_HYDROGEN_H_ |
6 #define V8_HYDROGEN_H_ | 6 #define V8_HYDROGEN_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
(...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1589 // ... | 1589 // ... |
1590 // if_finally.Else(); | 1590 // if_finally.Else(); |
1591 // // continues after else code of if_whatever or if_something. | 1591 // // continues after else code of if_whatever or if_something. |
1592 // ... | 1592 // ... |
1593 // if_finally.End(); | 1593 // if_finally.End(); |
1594 void JoinContinuation(HIfContinuation* continuation); | 1594 void JoinContinuation(HIfContinuation* continuation); |
1595 | 1595 |
1596 void Then(); | 1596 void Then(); |
1597 void Else(); | 1597 void Else(); |
1598 void End(); | 1598 void End(); |
| 1599 void EndUnreachable(); |
1599 | 1600 |
1600 void Deopt(Deoptimizer::DeoptReason reason); | 1601 void Deopt(Deoptimizer::DeoptReason reason); |
1601 void ThenDeopt(Deoptimizer::DeoptReason reason) { | 1602 void ThenDeopt(Deoptimizer::DeoptReason reason) { |
1602 Then(); | 1603 Then(); |
1603 Deopt(reason); | 1604 Deopt(reason); |
1604 } | 1605 } |
1605 void ElseDeopt(Deoptimizer::DeoptReason reason) { | 1606 void ElseDeopt(Deoptimizer::DeoptReason reason) { |
1606 Else(); | 1607 Else(); |
1607 Deopt(reason); | 1608 Deopt(reason); |
1608 } | 1609 } |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1853 HValue* previous_object_size, | 1854 HValue* previous_object_size, |
1854 HValue* payload); | 1855 HValue* payload); |
1855 | 1856 |
1856 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant); | 1857 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant); |
1857 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, | 1858 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, |
1858 Handle<JSObject> holder); | 1859 Handle<JSObject> holder); |
1859 | 1860 |
1860 HInstruction* BuildGetNativeContext(HValue* closure); | 1861 HInstruction* BuildGetNativeContext(HValue* closure); |
1861 HInstruction* BuildGetNativeContext(); | 1862 HInstruction* BuildGetNativeContext(); |
1862 HInstruction* BuildGetScriptContext(int context_index); | 1863 HInstruction* BuildGetScriptContext(int context_index); |
| 1864 // Builds a loop version if |depth| is specified or unrolls the loop to |
| 1865 // |depth_value| iterations otherwise. |
| 1866 HValue* BuildGetParentContext(HValue* depth, int depth_value); |
| 1867 |
1863 HInstruction* BuildGetArrayFunction(); | 1868 HInstruction* BuildGetArrayFunction(); |
1864 HValue* BuildArrayBufferViewFieldAccessor(HValue* object, | 1869 HValue* BuildArrayBufferViewFieldAccessor(HValue* object, |
1865 HValue* checked_object, | 1870 HValue* checked_object, |
1866 FieldIndex index); | 1871 FieldIndex index); |
1867 | 1872 |
1868 | 1873 |
1869 protected: | 1874 protected: |
1870 void SetSourcePosition(int position) { | 1875 void SetSourcePosition(int position) { |
1871 if (position != RelocInfo::kNoPosition) { | 1876 if (position != RelocInfo::kNoPosition) { |
1872 position_.set_position(position - start_position_); | 1877 position_.set_position(position - start_position_); |
(...skipping 1177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3050 } | 3055 } |
3051 | 3056 |
3052 private: | 3057 private: |
3053 HGraphBuilder* builder_; | 3058 HGraphBuilder* builder_; |
3054 }; | 3059 }; |
3055 | 3060 |
3056 | 3061 |
3057 } } // namespace v8::internal | 3062 } } // namespace v8::internal |
3058 | 3063 |
3059 #endif // V8_HYDROGEN_H_ | 3064 #endif // V8_HYDROGEN_H_ |
OLD | NEW |