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

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

Issue 1635001: Make not sucking at regexp the default... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 8 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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 10581 matching lines...) Expand 10 before | Expand all | Expand 10 after
10592 // Do the runtime call to allocate the arguments object. 10592 // Do the runtime call to allocate the arguments object.
10593 __ bind(&runtime); 10593 __ bind(&runtime);
10594 __ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1); 10594 __ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
10595 } 10595 }
10596 10596
10597 10597
10598 void RegExpExecStub::Generate(MacroAssembler* masm) { 10598 void RegExpExecStub::Generate(MacroAssembler* masm) {
10599 // Just jump directly to runtime if native RegExp is not selected at compile 10599 // Just jump directly to runtime if native RegExp is not selected at compile
10600 // time or if regexp entry in generated code is turned off runtime switch or 10600 // time or if regexp entry in generated code is turned off runtime switch or
10601 // at compilation. 10601 // at compilation.
10602 #ifndef V8_NATIVE_REGEXP 10602 #ifdef V8_INTERPRETED_REGEXP
10603 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1); 10603 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1);
10604 #else // V8_NATIVE_REGEXP 10604 #else // V8_INTERPRETED_REGEXP
10605 if (!FLAG_regexp_entry_native) { 10605 if (!FLAG_regexp_entry_native) {
10606 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1); 10606 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1);
10607 return; 10607 return;
10608 } 10608 }
10609 10609
10610 // Stack frame on entry. 10610 // Stack frame on entry.
10611 // esp[0]: return address 10611 // esp[0]: return address
10612 // esp[4]: last_match_info (expected JSArray) 10612 // esp[4]: last_match_info (expected JSArray)
10613 // esp[8]: previous index 10613 // esp[8]: previous index
10614 // esp[12]: subject string 10614 // esp[12]: subject string
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
10913 __ jmp(&next_capture); 10913 __ jmp(&next_capture);
10914 __ bind(&done); 10914 __ bind(&done);
10915 10915
10916 // Return last match info. 10916 // Return last match info.
10917 __ mov(eax, Operand(esp, kLastMatchInfoOffset)); 10917 __ mov(eax, Operand(esp, kLastMatchInfoOffset));
10918 __ ret(4 * kPointerSize); 10918 __ ret(4 * kPointerSize);
10919 10919
10920 // Do the runtime call to execute the regexp. 10920 // Do the runtime call to execute the regexp.
10921 __ bind(&runtime); 10921 __ bind(&runtime);
10922 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1); 10922 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1);
10923 #endif // V8_NATIVE_REGEXP 10923 #endif // V8_INTERPRETED_REGEXP
10924 } 10924 }
10925 10925
10926 10926
10927 void NumberToStringStub::GenerateLookupNumberStringCache(MacroAssembler* masm, 10927 void NumberToStringStub::GenerateLookupNumberStringCache(MacroAssembler* masm,
10928 Register object, 10928 Register object,
10929 Register result, 10929 Register result,
10930 Register scratch1, 10930 Register scratch1,
10931 Register scratch2, 10931 Register scratch2,
10932 bool object_is_smi, 10932 bool object_is_smi,
10933 Label* not_found) { 10933 Label* not_found) {
(...skipping 1711 matching lines...) Expand 10 before | Expand all | Expand 10 after
12645 12645
12646 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater) 12646 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater)
12647 // tagged as a small integer. 12647 // tagged as a small integer.
12648 __ bind(&runtime); 12648 __ bind(&runtime);
12649 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 12649 __ TailCallRuntime(Runtime::kStringCompare, 2, 1);
12650 } 12650 }
12651 12651
12652 #undef __ 12652 #undef __
12653 12653
12654 } } // namespace v8::internal 12654 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698