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

Side by Side Diff: src/macro-assembler-ia32.h

Issue 6341: Improve the generated code for the instanceof operator. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 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 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 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 // Support functions. 172 // Support functions.
173 173
174 // Check if result is zero and op is negative. 174 // Check if result is zero and op is negative.
175 void NegativeZeroTest(Register result, Register op, Label* then_label); 175 void NegativeZeroTest(Register result, Register op, Label* then_label);
176 176
177 // Check if result is zero and any of op1 and op2 are negative. 177 // Check if result is zero and any of op1 and op2 are negative.
178 // Register scratch is destroyed, and it must be different from op2. 178 // Register scratch is destroyed, and it must be different from op2.
179 void NegativeZeroTest(Register result, Register op1, Register op2, 179 void NegativeZeroTest(Register result, Register op1, Register op2,
180 Register scratch, Label* then_label); 180 Register scratch, Label* then_label);
181 181
182 // Try to get function prototype of a function and puts the value in
183 // the result register. Checks that the function really is a
184 // function and jumps to the miss label if the fast checks fail. The
185 // function register will be untouched; the other registers may be
186 // clobbered.
187 void TryGetFunctionPrototype(Register function,
188 Register result,
189 Register scratch,
190 Label* miss);
191
182 // Generates code for reporting that an illegal operation has 192 // Generates code for reporting that an illegal operation has
183 // occurred. 193 // occurred.
184 void IllegalOperation(int num_arguments); 194 void IllegalOperation(int num_arguments);
185 195
186 // --------------------------------------------------------------------------- 196 // ---------------------------------------------------------------------------
187 // Runtime calls 197 // Runtime calls
188 198
189 // Call a code stub. 199 // Call a code stub.
190 void CallStub(CodeStub* stub); 200 void CallStub(CodeStub* stub);
191 201
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 Register index, 310 Register index,
301 ScaleFactor scale, 311 ScaleFactor scale,
302 int offset) { 312 int offset) {
303 return Operand(object, index, scale, offset - kHeapObjectTag); 313 return Operand(object, index, scale, offset - kHeapObjectTag);
304 } 314 }
305 315
306 316
307 } } // namespace v8::internal 317 } } // namespace v8::internal
308 318
309 #endif // V8_MACRO_ASSEMBLER_IA32_H_ 319 #endif // V8_MACRO_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/codegen-ia32.cc ('k') | src/macro-assembler-ia32.cc » ('j') | src/macro-assembler-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698