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

Side by Side Diff: src/ic-ia32.cc

Issue 8187: Serendipitously arrange the tags so that String.length() becomes a branch-fre... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 years, 1 month 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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 Label miss; 131 Label miss;
132 132
133 __ mov(eax, Operand(esp, kPointerSize)); 133 __ mov(eax, Operand(esp, kPointerSize));
134 134
135 StubCompiler::GenerateLoadArrayLength(masm, eax, edx, &miss); 135 StubCompiler::GenerateLoadArrayLength(masm, eax, edx, &miss);
136 __ bind(&miss); 136 __ bind(&miss);
137 StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC); 137 StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
138 } 138 }
139 139
140 140
141 void LoadIC::GenerateShortStringLength(MacroAssembler* masm) { 141 void LoadIC::GenerateStringLength(MacroAssembler* masm) {
142 // ----------- S t a t e ------------- 142 // ----------- S t a t e -------------
143 // -- ecx : name 143 // -- ecx : name
144 // -- esp[0] : return address 144 // -- esp[0] : return address
145 // -- esp[4] : receiver 145 // -- esp[4] : receiver
146 // ----------------------------------- 146 // -----------------------------------
147 147
148 Label miss; 148 Label miss;
149 149
150 __ mov(eax, Operand(esp, kPointerSize)); 150 __ mov(eax, Operand(esp, kPointerSize));
151 151
152 StubCompiler::GenerateLoadShortStringLength(masm, eax, edx, &miss); 152 StubCompiler::GenerateLoadStringLength(masm, eax, edx, &miss);
153 __ bind(&miss);
154 StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
155 }
156
157
158 void LoadIC::GenerateMediumStringLength(MacroAssembler* masm) {
159 // ----------- S t a t e -------------
160 // -- ecx : name
161 // -- esp[0] : return address
162 // -- esp[4] : receiver
163 // -----------------------------------
164
165 Label miss;
166
167 __ mov(eax, Operand(esp, kPointerSize));
168
169 StubCompiler::GenerateLoadMediumStringLength(masm, eax, edx, &miss);
170 __ bind(&miss);
171 StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
172 }
173
174
175 void LoadIC::GenerateLongStringLength(MacroAssembler* masm) {
176 // ----------- S t a t e -------------
177 // -- ecx : name
178 // -- esp[0] : return address
179 // -- esp[4] : receiver
180 // -----------------------------------
181
182 Label miss;
183
184 __ mov(eax, Operand(esp, kPointerSize));
185
186 StubCompiler::GenerateLoadLongStringLength(masm, eax, edx, &miss);
187 __ bind(&miss); 153 __ bind(&miss);
188 StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC); 154 StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
189 } 155 }
190 156
191 157
192 void LoadIC::GenerateFunctionPrototype(MacroAssembler* masm) { 158 void LoadIC::GenerateFunctionPrototype(MacroAssembler* masm) {
193 // ----------- S t a t e ------------- 159 // ----------- S t a t e -------------
194 // -- ecx : name 160 // -- ecx : name
195 // -- esp[0] : return address 161 // -- esp[0] : return address
196 // -- esp[4] : receiver 162 // -- esp[4] : receiver
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 769
804 // Do tail-call to runtime routine. 770 // Do tail-call to runtime routine.
805 __ TailCallRuntime( 771 __ TailCallRuntime(
806 ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3); 772 ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3);
807 } 773 }
808 774
809 #undef __ 775 #undef __
810 776
811 777
812 } } // namespace v8::internal 778 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698