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

Side by Side Diff: src/mips/stub-cache-mips.cc

Issue 8341009: Make the GC aware of JSReceiver pointers in LookupResults. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Inlined LookupResult constructor and destructor. Created 9 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
« no previous file with comments | « src/isolate.cc ('k') | src/objects.cc » ('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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 2497 matching lines...) Expand 10 before | Expand all | Expand 10 after
2508 // -- ra : return address 2508 // -- ra : return address
2509 // ----------------------------------- 2509 // -----------------------------------
2510 2510
2511 Label miss; 2511 Label miss;
2512 2512
2513 GenerateNameCheck(name, &miss); 2513 GenerateNameCheck(name, &miss);
2514 2514
2515 // Get the number of arguments. 2515 // Get the number of arguments.
2516 const int argc = arguments().immediate(); 2516 const int argc = arguments().immediate();
2517 2517
2518 LookupResult lookup; 2518 LookupResult lookup(isolate());
2519 LookupPostInterceptor(holder, name, &lookup); 2519 LookupPostInterceptor(holder, name, &lookup);
2520 2520
2521 // Get the receiver from the stack. 2521 // Get the receiver from the stack.
2522 __ lw(a1, MemOperand(sp, argc * kPointerSize)); 2522 __ lw(a1, MemOperand(sp, argc * kPointerSize));
2523 2523
2524 CallInterceptorCompiler compiler(this, arguments(), a2, extra_ic_state_); 2524 CallInterceptorCompiler compiler(this, arguments(), a2, extra_ic_state_);
2525 MaybeObject* result = compiler.Compile(masm(), 2525 MaybeObject* result = compiler.Compile(masm(),
2526 object, 2526 object,
2527 holder, 2527 holder,
2528 name, 2528 name,
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
2912 JSObject* holder, 2912 JSObject* holder,
2913 String* name) { 2913 String* name) {
2914 // ----------- S t a t e ------------- 2914 // ----------- S t a t e -------------
2915 // -- a0 : receiver 2915 // -- a0 : receiver
2916 // -- a2 : name 2916 // -- a2 : name
2917 // -- ra : return address 2917 // -- ra : return address
2918 // -- [sp] : receiver 2918 // -- [sp] : receiver
2919 // ----------------------------------- 2919 // -----------------------------------
2920 Label miss; 2920 Label miss;
2921 2921
2922 LookupResult lookup; 2922 LookupResult lookup(isolate());
2923 LookupPostInterceptor(holder, name, &lookup); 2923 LookupPostInterceptor(holder, name, &lookup);
2924 GenerateLoadInterceptor(object, 2924 GenerateLoadInterceptor(object,
2925 holder, 2925 holder,
2926 &lookup, 2926 &lookup,
2927 a0, 2927 a0,
2928 a2, 2928 a2,
2929 a3, 2929 a3,
2930 a1, 2930 a1,
2931 t0, 2931 t0,
2932 name, 2932 name,
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
3066 // ----------- S t a t e ------------- 3066 // ----------- S t a t e -------------
3067 // -- ra : return address 3067 // -- ra : return address
3068 // -- a0 : key 3068 // -- a0 : key
3069 // -- a1 : receiver 3069 // -- a1 : receiver
3070 // ----------------------------------- 3070 // -----------------------------------
3071 Label miss; 3071 Label miss;
3072 3072
3073 // Check the key is the cached one. 3073 // Check the key is the cached one.
3074 __ Branch(&miss, ne, a0, Operand(Handle<String>(name))); 3074 __ Branch(&miss, ne, a0, Operand(Handle<String>(name)));
3075 3075
3076 LookupResult lookup; 3076 LookupResult lookup(isolate());
3077 LookupPostInterceptor(holder, name, &lookup); 3077 LookupPostInterceptor(holder, name, &lookup);
3078 GenerateLoadInterceptor(receiver, 3078 GenerateLoadInterceptor(receiver,
3079 holder, 3079 holder,
3080 &lookup, 3080 &lookup,
3081 a1, 3081 a1,
3082 a0, 3082 a0,
3083 a2, 3083 a2,
3084 a3, 3084 a3,
3085 t0, 3085 t0,
3086 name, 3086 name,
(...skipping 1443 matching lines...) Expand 10 before | Expand all | Expand 10 after
4530 Handle<Code> ic_miss = masm->isolate()->builtins()->KeyedStoreIC_Miss(); 4530 Handle<Code> ic_miss = masm->isolate()->builtins()->KeyedStoreIC_Miss();
4531 __ Jump(ic_miss, RelocInfo::CODE_TARGET); 4531 __ Jump(ic_miss, RelocInfo::CODE_TARGET);
4532 } 4532 }
4533 4533
4534 4534
4535 #undef __ 4535 #undef __
4536 4536
4537 } } // namespace v8::internal 4537 } } // namespace v8::internal
4538 4538
4539 #endif // V8_TARGET_ARCH_MIPS 4539 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/isolate.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698