OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 5145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5156 UNREACHABLE(); | 5156 UNREACHABLE(); |
5157 } | 5157 } |
5158 Load(left); | 5158 Load(left); |
5159 Load(right); | 5159 Load(right); |
5160 Comparison(cc, strict, destination()); | 5160 Comparison(cc, strict, destination()); |
5161 } | 5161 } |
5162 | 5162 |
5163 | 5163 |
5164 #ifdef DEBUG | 5164 #ifdef DEBUG |
5165 bool CodeGenerator::HasValidEntryRegisters() { | 5165 bool CodeGenerator::HasValidEntryRegisters() { |
5166 return (allocator()->count(eax) == frame()->register_count(eax)) | 5166 return (allocator()->count(eax) == (frame()->is_used(eax) ? 1 : 0)) |
5167 && (allocator()->count(ebx) == frame()->register_count(ebx)) | 5167 && (allocator()->count(ebx) == (frame()->is_used(ebx) ? 1 : 0)) |
5168 && (allocator()->count(ecx) == frame()->register_count(ecx)) | 5168 && (allocator()->count(ecx) == (frame()->is_used(ecx) ? 1 : 0)) |
5169 && (allocator()->count(edx) == frame()->register_count(edx)) | 5169 && (allocator()->count(edx) == (frame()->is_used(edx) ? 1 : 0)) |
5170 && (allocator()->count(edi) == frame()->register_count(edi)); | 5170 && (allocator()->count(edi) == (frame()->is_used(edi) ? 1 : 0)); |
5171 } | 5171 } |
5172 #endif | 5172 #endif |
5173 | 5173 |
5174 | 5174 |
5175 class DeferredReferenceGetKeyedValue: public DeferredCode { | 5175 class DeferredReferenceGetKeyedValue: public DeferredCode { |
5176 public: | 5176 public: |
5177 DeferredReferenceGetKeyedValue(CodeGenerator* generator, bool is_global) | 5177 DeferredReferenceGetKeyedValue(CodeGenerator* generator, bool is_global) |
5178 : DeferredCode(generator), is_global_(is_global) { | 5178 : DeferredCode(generator), is_global_(is_global) { |
5179 set_comment("[ DeferredReferenceGetKeyedValue"); | 5179 set_comment("[ DeferredReferenceGetKeyedValue"); |
5180 } | 5180 } |
(...skipping 1811 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6992 | 6992 |
6993 // Slow-case: Go through the JavaScript implementation. | 6993 // Slow-case: Go through the JavaScript implementation. |
6994 __ bind(&slow); | 6994 __ bind(&slow); |
6995 __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION); | 6995 __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION); |
6996 } | 6996 } |
6997 | 6997 |
6998 | 6998 |
6999 #undef __ | 6999 #undef __ |
7000 | 7000 |
7001 } } // namespace v8::internal | 7001 } } // namespace v8::internal |
OLD | NEW |