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

Side by Side Diff: src/ic/ia32/handler-compiler-ia32.cc

Issue 1815213002: Extends testb and cmpb/cmpw instruction support in the ia32 assembler. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix a copy/pasted erroneous DCHECK. Created 4 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/macro-assembler-ia32.cc ('k') | src/ic/ia32/ic-ia32.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #if V8_TARGET_ARCH_IA32 5 #if V8_TARGET_ARCH_IA32
6 6
7 #include "src/ic/handler-compiler.h" 7 #include "src/ic/handler-compiler.h"
8 8
9 #include "src/api-arguments.h" 9 #include "src/api-arguments.h"
10 #include "src/field-type.h" 10 #include "src/field-type.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 __ IncrementCounter(counters->negative_lookups(), 1); 87 __ IncrementCounter(counters->negative_lookups(), 1);
88 __ IncrementCounter(counters->negative_lookups_miss(), 1); 88 __ IncrementCounter(counters->negative_lookups_miss(), 1);
89 89
90 __ mov(scratch0, FieldOperand(receiver, HeapObject::kMapOffset)); 90 __ mov(scratch0, FieldOperand(receiver, HeapObject::kMapOffset));
91 91
92 const int kInterceptorOrAccessCheckNeededMask = 92 const int kInterceptorOrAccessCheckNeededMask =
93 (1 << Map::kHasNamedInterceptor) | (1 << Map::kIsAccessCheckNeeded); 93 (1 << Map::kHasNamedInterceptor) | (1 << Map::kIsAccessCheckNeeded);
94 94
95 // Bail out if the receiver has a named interceptor or requires access checks. 95 // Bail out if the receiver has a named interceptor or requires access checks.
96 __ test_b(FieldOperand(scratch0, Map::kBitFieldOffset), 96 __ test_b(FieldOperand(scratch0, Map::kBitFieldOffset),
97 kInterceptorOrAccessCheckNeededMask); 97 Immediate(kInterceptorOrAccessCheckNeededMask));
98 __ j(not_zero, miss_label); 98 __ j(not_zero, miss_label);
99 99
100 // Check that receiver is a JSObject. 100 // Check that receiver is a JSObject.
101 __ CmpInstanceType(scratch0, FIRST_JS_RECEIVER_TYPE); 101 __ CmpInstanceType(scratch0, FIRST_JS_RECEIVER_TYPE);
102 __ j(below, miss_label); 102 __ j(below, miss_label);
103 103
104 // Load properties array. 104 // Load properties array.
105 Register properties = scratch0; 105 Register properties = scratch0;
106 __ mov(properties, FieldOperand(receiver, JSObject::kPropertiesOffset)); 106 __ mov(properties, FieldOperand(receiver, JSObject::kPropertiesOffset));
107 107
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 // Return the generated code. 819 // Return the generated code.
820 return GetCode(kind(), Code::NORMAL, name); 820 return GetCode(kind(), Code::NORMAL, name);
821 } 821 }
822 822
823 823
824 #undef __ 824 #undef __
825 } // namespace internal 825 } // namespace internal
826 } // namespace v8 826 } // namespace v8
827 827
828 #endif // V8_TARGET_ARCH_IA32 828 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/ic/ia32/ic-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698