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

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

Issue 11190049: Improve ClampDoubleToUint8 on ia32/x64 (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 2 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 2120 matching lines...) Expand 10 before | Expand all | Expand 10 after
2131 explicit LCheckSmi(LOperand* value) { 2131 explicit LCheckSmi(LOperand* value) {
2132 inputs_[0] = value; 2132 inputs_[0] = value;
2133 } 2133 }
2134 2134
2135 LOperand* value() { return inputs_[0]; } 2135 LOperand* value() { return inputs_[0]; }
2136 2136
2137 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi") 2137 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi")
2138 }; 2138 };
2139 2139
2140 2140
2141 class LClampDToUint8: public LTemplateInstruction<1, 1, 1> { 2141 class LClampDToUint8: public LTemplateInstruction<1, 1, 0> {
2142 public: 2142 public:
2143 LClampDToUint8(LOperand* unclamped, LOperand* temp) { 2143 explicit LClampDToUint8(LOperand* unclamped) {
2144 inputs_[0] = unclamped; 2144 inputs_[0] = unclamped;
2145 temps_[0] = temp;
2146 } 2145 }
2147 2146
2148 LOperand* unclamped() { return inputs_[0]; } 2147 LOperand* unclamped() { return inputs_[0]; }
2149 LOperand* temp() { return temps_[0]; }
2150 2148
2151 DECLARE_CONCRETE_INSTRUCTION(ClampDToUint8, "clamp-d-to-uint8") 2149 DECLARE_CONCRETE_INSTRUCTION(ClampDToUint8, "clamp-d-to-uint8")
2152 }; 2150 };
2153 2151
2154 2152
2155 class LClampIToUint8: public LTemplateInstruction<1, 1, 0> { 2153 class LClampIToUint8: public LTemplateInstruction<1, 1, 0> {
2156 public: 2154 public:
2157 explicit LClampIToUint8(LOperand* unclamped) { 2155 explicit LClampIToUint8(LOperand* unclamped) {
2158 inputs_[0] = unclamped; 2156 inputs_[0] = unclamped;
2159 } 2157 }
2160 2158
2161 LOperand* unclamped() { return inputs_[0]; } 2159 LOperand* unclamped() { return inputs_[0]; }
2162 2160
2163 DECLARE_CONCRETE_INSTRUCTION(ClampIToUint8, "clamp-i-to-uint8") 2161 DECLARE_CONCRETE_INSTRUCTION(ClampIToUint8, "clamp-i-to-uint8")
2164 }; 2162 };
2165 2163
2166 2164
2167 class LClampTToUint8: public LTemplateInstruction<1, 1, 2> { 2165 class LClampTToUint8: public LTemplateInstruction<1, 1, 1> {
2168 public: 2166 public:
2169 LClampTToUint8(LOperand* unclamped, 2167 LClampTToUint8(LOperand* unclamped,
2170 LOperand* temp, 2168 LOperand* temp_xmm) {
2171 LOperand* temp2) {
2172 inputs_[0] = unclamped; 2169 inputs_[0] = unclamped;
2173 temps_[0] = temp; 2170 temps_[0] = temp_xmm;
2174 temps_[1] = temp2;
2175 } 2171 }
2176 2172
2177 LOperand* unclamped() { return inputs_[0]; } 2173 LOperand* unclamped() { return inputs_[0]; }
2178 LOperand* temp() { return temps_[0]; } 2174 LOperand* temp_xmm() { return temps_[0]; }
2179 LOperand* temp2() { return temps_[1]; }
2180 2175
2181 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8, "clamp-t-to-uint8") 2176 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8, "clamp-t-to-uint8")
2182 }; 2177 };
2183 2178
2184 2179
2185 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> { 2180 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
2186 public: 2181 public:
2187 explicit LCheckNonSmi(LOperand* value) { 2182 explicit LCheckNonSmi(LOperand* value) {
2188 inputs_[0] = value; 2183 inputs_[0] = value;
2189 } 2184 }
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
2572 2567
2573 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2568 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2574 }; 2569 };
2575 2570
2576 #undef DECLARE_HYDROGEN_ACCESSOR 2571 #undef DECLARE_HYDROGEN_ACCESSOR
2577 #undef DECLARE_CONCRETE_INSTRUCTION 2572 #undef DECLARE_CONCRETE_INSTRUCTION
2578 2573
2579 } } // namespace v8::int 2574 } } // namespace v8::int
2580 2575
2581 #endif // V8_X64_LITHIUM_X64_H_ 2576 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698