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

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

Issue 669061: First take on custom call generators. (Closed)
Patch Set: Ultimate version Created 10 years, 9 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
« no previous file with comments | « src/ia32/codegen-ia32.h ('k') | src/ia32/macro-assembler-ia32.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 10199 matching lines...) Expand 10 before | Expand all | Expand 10 after
10210 // Generate code to lookup number in the number string cache. 10210 // Generate code to lookup number in the number string cache.
10211 GenerateLookupNumberStringCache(masm, ebx, eax, ecx, edx, false, &runtime); 10211 GenerateLookupNumberStringCache(masm, ebx, eax, ecx, edx, false, &runtime);
10212 __ ret(1 * kPointerSize); 10212 __ ret(1 * kPointerSize);
10213 10213
10214 __ bind(&runtime); 10214 __ bind(&runtime);
10215 // Handle number to string in the runtime system if not found in the cache. 10215 // Handle number to string in the runtime system if not found in the cache.
10216 __ TailCallRuntime(Runtime::kNumberToString, 1, 1); 10216 __ TailCallRuntime(Runtime::kNumberToString, 1, 1);
10217 } 10217 }
10218 10218
10219 10219
10220 void RecordWriteStub::Generate(MacroAssembler* masm) {
10221 masm->RecordWriteHelper(object_, addr_, scratch_);
10222 masm->ret(0);
10223 }
10224
10225
10220 void CompareStub::Generate(MacroAssembler* masm) { 10226 void CompareStub::Generate(MacroAssembler* masm) {
10221 Label call_builtin, done; 10227 Label call_builtin, done;
10222 10228
10223 // NOTICE! This code is only reached after a smi-fast-case check, so 10229 // NOTICE! This code is only reached after a smi-fast-case check, so
10224 // it is certain that at least one operand isn't a smi. 10230 // it is certain that at least one operand isn't a smi.
10225 10231
10226 if (cc_ == equal) { // Both strict and non-strict. 10232 if (cc_ == equal) { // Both strict and non-strict.
10227 Label slow; // Fallthrough label. 10233 Label slow; // Fallthrough label.
10228 // Equality is almost reflexive (everything but NaN), so start by testing 10234 // Equality is almost reflexive (everything but NaN), so start by testing
10229 // for "identity and not NaN". 10235 // for "identity and not NaN".
(...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after
11808 11814
11809 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater) 11815 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater)
11810 // tagged as a small integer. 11816 // tagged as a small integer.
11811 __ bind(&runtime); 11817 __ bind(&runtime);
11812 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 11818 __ TailCallRuntime(Runtime::kStringCompare, 2, 1);
11813 } 11819 }
11814 11820
11815 #undef __ 11821 #undef __
11816 11822
11817 } } // namespace v8::internal 11823 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ia32/codegen-ia32.h ('k') | src/ia32/macro-assembler-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698