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

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

Issue 15303004: Implement HChange support for Smis and use it in Load/StoreNameField (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Review feedback Created 7 years, 7 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 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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 V(ConstantD) \ 83 V(ConstantD) \
84 V(ConstantI) \ 84 V(ConstantI) \
85 V(ConstantT) \ 85 V(ConstantT) \
86 V(Context) \ 86 V(Context) \
87 V(DebugBreak) \ 87 V(DebugBreak) \
88 V(DeclareGlobals) \ 88 V(DeclareGlobals) \
89 V(DeleteProperty) \ 89 V(DeleteProperty) \
90 V(Deoptimize) \ 90 V(Deoptimize) \
91 V(DivI) \ 91 V(DivI) \
92 V(DoubleToI) \ 92 V(DoubleToI) \
93 V(DoubleToSmi) \
93 V(DummyUse) \ 94 V(DummyUse) \
94 V(ElementsKind) \ 95 V(ElementsKind) \
95 V(FixedArrayBaseLength) \ 96 V(FixedArrayBaseLength) \
96 V(FunctionLiteral) \ 97 V(FunctionLiteral) \
97 V(GetCachedArrayIndex) \ 98 V(GetCachedArrayIndex) \
98 V(GlobalObject) \ 99 V(GlobalObject) \
99 V(GlobalReceiver) \ 100 V(GlobalReceiver) \
100 V(Goto) \ 101 V(Goto) \
101 V(HasCachedArrayIndexAndBranch) \ 102 V(HasCachedArrayIndexAndBranch) \
102 V(HasInstanceTypeAndBranch) \ 103 V(HasInstanceTypeAndBranch) \
103 V(In) \ 104 V(In) \
104 V(InstanceOf) \ 105 V(InstanceOf) \
105 V(InstanceOfKnownGlobal) \ 106 V(InstanceOfKnownGlobal) \
106 V(InstanceSize) \ 107 V(InstanceSize) \
107 V(InstructionGap) \ 108 V(InstructionGap) \
108 V(Integer32ToDouble) \ 109 V(Integer32ToDouble) \
110 V(Integer32ToSmi) \
109 V(Uint32ToDouble) \ 111 V(Uint32ToDouble) \
110 V(InvokeFunction) \ 112 V(InvokeFunction) \
111 V(IsConstructCallAndBranch) \ 113 V(IsConstructCallAndBranch) \
112 V(IsObjectAndBranch) \ 114 V(IsObjectAndBranch) \
113 V(IsStringAndBranch) \ 115 V(IsStringAndBranch) \
114 V(IsSmiAndBranch) \ 116 V(IsSmiAndBranch) \
115 V(IsUndetectableAndBranch) \ 117 V(IsUndetectableAndBranch) \
116 V(Label) \ 118 V(Label) \
117 V(LazyBailout) \ 119 V(LazyBailout) \
118 V(LoadContextSlot) \ 120 V(LoadContextSlot) \
(...skipping 1872 matching lines...) Expand 10 before | Expand all | Expand 10 after
1991 explicit LInteger32ToDouble(LOperand* value) { 1993 explicit LInteger32ToDouble(LOperand* value) {
1992 inputs_[0] = value; 1994 inputs_[0] = value;
1993 } 1995 }
1994 1996
1995 LOperand* value() { return inputs_[0]; } 1997 LOperand* value() { return inputs_[0]; }
1996 1998
1997 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") 1999 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double")
1998 }; 2000 };
1999 2001
2000 2002
2003 class LInteger32ToSmi: public LTemplateInstruction<1, 1, 0> {
2004 public:
2005 explicit LInteger32ToSmi(LOperand* value) {
2006 inputs_[0] = value;
2007 }
2008
2009 LOperand* value() { return inputs_[0]; }
2010
2011 DECLARE_CONCRETE_INSTRUCTION(Integer32ToSmi, "int32-to-smi")
2012 DECLARE_HYDROGEN_ACCESSOR(Change)
2013 };
2014
2015
2001 class LUint32ToDouble: public LTemplateInstruction<1, 1, 1> { 2016 class LUint32ToDouble: public LTemplateInstruction<1, 1, 1> {
2002 public: 2017 public:
2003 explicit LUint32ToDouble(LOperand* value, LOperand* temp) { 2018 explicit LUint32ToDouble(LOperand* value, LOperand* temp) {
2004 inputs_[0] = value; 2019 inputs_[0] = value;
2005 temps_[0] = temp; 2020 temps_[0] = temp;
2006 } 2021 }
2007 2022
2008 LOperand* value() { return inputs_[0]; } 2023 LOperand* value() { return inputs_[0]; }
2009 LOperand* temp() { return temps_[0]; } 2024 LOperand* temp() { return temps_[0]; }
2010 2025
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2062 LOperand* value() { return inputs_[0]; } 2077 LOperand* value() { return inputs_[0]; }
2063 LOperand* temp() { return temps_[0]; } 2078 LOperand* temp() { return temps_[0]; }
2064 2079
2065 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i") 2080 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i")
2066 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation) 2081 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
2067 2082
2068 bool truncating() { return hydrogen()->CanTruncateToInt32(); } 2083 bool truncating() { return hydrogen()->CanTruncateToInt32(); }
2069 }; 2084 };
2070 2085
2071 2086
2087 class LDoubleToSmi: public LTemplateInstruction<1, 1, 0> {
2088 public:
2089 explicit LDoubleToSmi(LOperand* value) {
2090 inputs_[0] = value;
2091 }
2092
2093 LOperand* value() { return inputs_[0]; }
2094
2095 DECLARE_CONCRETE_INSTRUCTION(DoubleToSmi, "double-to-smi")
2096 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
2097 };
2098
2099
2072 // Truncating conversion from a tagged value to an int32. 2100 // Truncating conversion from a tagged value to an int32.
2073 class LTaggedToI: public LTemplateInstruction<1, 1, 1> { 2101 class LTaggedToI: public LTemplateInstruction<1, 1, 1> {
2074 public: 2102 public:
2075 LTaggedToI(LOperand* value, LOperand* temp) { 2103 LTaggedToI(LOperand* value, LOperand* temp) {
2076 inputs_[0] = value; 2104 inputs_[0] = value;
2077 temps_[0] = temp; 2105 temps_[0] = temp;
2078 } 2106 }
2079 2107
2080 LOperand* value() { return inputs_[0]; } 2108 LOperand* value() { return inputs_[0]; }
2081 LOperand* temp() { return temps_[0]; } 2109 LOperand* temp() { return temps_[0]; }
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
2425 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps") 2453 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps")
2426 DECLARE_HYDROGEN_ACCESSOR(CheckPrototypeMaps) 2454 DECLARE_HYDROGEN_ACCESSOR(CheckPrototypeMaps)
2427 2455
2428 ZoneList<Handle<JSObject> >* prototypes() const { 2456 ZoneList<Handle<JSObject> >* prototypes() const {
2429 return hydrogen()->prototypes(); 2457 return hydrogen()->prototypes();
2430 } 2458 }
2431 ZoneList<Handle<Map> >* maps() const { return hydrogen()->maps(); } 2459 ZoneList<Handle<Map> >* maps() const { return hydrogen()->maps(); }
2432 }; 2460 };
2433 2461
2434 2462
2435 class LCheckSmi: public LTemplateInstruction<0, 1, 0> { 2463 class LCheckSmi: public LTemplateInstruction<1, 1, 0> {
2436 public: 2464 public:
2437 explicit LCheckSmi(LOperand* value) { 2465 explicit LCheckSmi(LOperand* value) {
2438 inputs_[0] = value; 2466 inputs_[0] = value;
2439 } 2467 }
2440 2468
2441 LOperand* value() { return inputs_[0]; } 2469 LOperand* value() { return inputs_[0]; }
2442 2470
2443 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi") 2471 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi")
2444 }; 2472 };
2445 2473
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
2945 2973
2946 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2974 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2947 }; 2975 };
2948 2976
2949 #undef DECLARE_HYDROGEN_ACCESSOR 2977 #undef DECLARE_HYDROGEN_ACCESSOR
2950 #undef DECLARE_CONCRETE_INSTRUCTION 2978 #undef DECLARE_CONCRETE_INSTRUCTION
2951 2979
2952 } } // namespace v8::internal 2980 } } // namespace v8::internal
2953 2981
2954 #endif // V8_IA32_LITHIUM_IA32_H_ 2982 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698