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

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

Issue 2028983002: Introduce IsUndefined(Isolate*) and IsTheHole(Isolate*) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixing wrongly wrapped lines Created 4 years, 6 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_S390 5 #if V8_TARGET_ARCH_S390
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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 break; 263 break;
264 case CallOptimization::kHolderNotFound: 264 case CallOptimization::kHolderNotFound:
265 UNREACHABLE(); 265 UNREACHABLE();
266 break; 266 break;
267 } 267 }
268 268
269 Isolate* isolate = masm->isolate(); 269 Isolate* isolate = masm->isolate();
270 Handle<CallHandlerInfo> api_call_info = optimization.api_call_info(); 270 Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
271 bool call_data_undefined = false; 271 bool call_data_undefined = false;
272 // Put call data in place. 272 // Put call data in place.
273 if (api_call_info->data()->IsUndefined()) { 273 if (api_call_info->data()->IsUndefined(isolate)) {
274 call_data_undefined = true; 274 call_data_undefined = true;
275 __ LoadRoot(data, Heap::kUndefinedValueRootIndex); 275 __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
276 } else { 276 } else {
277 if (optimization.is_constant_call()) { 277 if (optimization.is_constant_call()) {
278 __ LoadP(data, 278 __ LoadP(data,
279 FieldMemOperand(callee, JSFunction::kSharedFunctionInfoOffset)); 279 FieldMemOperand(callee, JSFunction::kSharedFunctionInfoOffset));
280 __ LoadP(data, 280 __ LoadP(data,
281 FieldMemOperand(data, SharedFunctionInfo::kFunctionDataOffset)); 281 FieldMemOperand(data, SharedFunctionInfo::kFunctionDataOffset));
282 __ LoadP(data, 282 __ LoadP(data,
283 FieldMemOperand(data, FunctionTemplateInfo::kCallCodeOffset)); 283 FieldMemOperand(data, FunctionTemplateInfo::kCallCodeOffset));
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 601
602 Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback( 602 Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback(
603 Handle<JSObject> object, Handle<Name> name, Handle<AccessorInfo> callback, 603 Handle<JSObject> object, Handle<Name> name, Handle<AccessorInfo> callback,
604 LanguageMode language_mode) { 604 LanguageMode language_mode) {
605 Register holder_reg = Frontend(name); 605 Register holder_reg = Frontend(name);
606 606
607 __ Push(receiver(), holder_reg); // receiver 607 __ Push(receiver(), holder_reg); // receiver
608 608
609 // If the callback cannot leak, then push the callback directly, 609 // If the callback cannot leak, then push the callback directly,
610 // otherwise wrap it in a weak cell. 610 // otherwise wrap it in a weak cell.
611 if (callback->data()->IsUndefined() || callback->data()->IsSmi()) { 611 if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
612 __ mov(ip, Operand(callback)); 612 __ mov(ip, Operand(callback));
613 } else { 613 } else {
614 Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback); 614 Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
615 __ mov(ip, Operand(cell)); 615 __ mov(ip, Operand(cell));
616 } 616 }
617 __ Push(ip); 617 __ Push(ip);
618 __ mov(ip, Operand(name)); 618 __ mov(ip, Operand(name));
619 __ Push(ip, value()); 619 __ Push(ip, value());
620 __ Push(Smi::FromInt(language_mode)); 620 __ Push(Smi::FromInt(language_mode));
621 621
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 661
662 // Return the generated code. 662 // Return the generated code.
663 return GetCode(kind(), name); 663 return GetCode(kind(), name);
664 } 664 }
665 665
666 #undef __ 666 #undef __
667 } // namespace internal 667 } // namespace internal
668 } // namespace v8 668 } // namespace v8
669 669
670 #endif // V8_TARGET_ARCH_ARM 670 #endif // V8_TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698