| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 Register scratch2, | 453 Register scratch2, |
| 454 Label* miss_label, | 454 Label* miss_label, |
| 455 bool support_wrappers); | 455 bool support_wrappers); |
| 456 | 456 |
| 457 static void GenerateLoadFunctionPrototype(MacroAssembler* masm, | 457 static void GenerateLoadFunctionPrototype(MacroAssembler* masm, |
| 458 Register receiver, | 458 Register receiver, |
| 459 Register scratch1, | 459 Register scratch1, |
| 460 Register scratch2, | 460 Register scratch2, |
| 461 Label* miss_label); | 461 Label* miss_label); |
| 462 | 462 |
| 463 static void GenerateStoreField(MacroAssembler* masm, | 463 void GenerateStoreField(MacroAssembler* masm, |
| 464 Handle<JSObject> object, | 464 Handle<JSObject> object, |
| 465 int index, | 465 int index, |
| 466 Handle<Map> transition, | 466 Handle<Map> transition, |
| 467 Register receiver_reg, | 467 Handle<String> name, |
| 468 Register name_reg, | 468 Register receiver_reg, |
| 469 Register scratch, | 469 Register name_reg, |
| 470 Label* miss_label); | 470 Register scratch1, |
| 471 Register scratch2, |
| 472 Label* miss_label); |
| 471 | 473 |
| 472 static void GenerateLoadMiss(MacroAssembler* masm, | 474 static void GenerateLoadMiss(MacroAssembler* masm, |
| 473 Code::Kind kind); | 475 Code::Kind kind); |
| 474 | 476 |
| 475 static void GenerateKeyedLoadMissForceGeneric(MacroAssembler* masm); | 477 static void GenerateKeyedLoadMissForceGeneric(MacroAssembler* masm); |
| 476 | 478 |
| 477 // Generates code that verifies that the property holder has not changed | 479 // Generates code that verifies that the property holder has not changed |
| 478 // (checking maps of objects in the prototype chain for fast and global | 480 // (checking maps of objects in the prototype chain for fast and global |
| 479 // objects or doing negative lookup for slow objects, ensures that the | 481 // objects or doing negative lookup for slow objects, ensures that the |
| 480 // property cells for global objects are still empty) and checks that the map | 482 // property cells for global objects are still empty) and checks that the map |
| (...skipping 23 matching lines...) Expand all Loading... |
| 504 Register CheckPrototypes(Handle<JSObject> object, | 506 Register CheckPrototypes(Handle<JSObject> object, |
| 505 Register object_reg, | 507 Register object_reg, |
| 506 Handle<JSObject> holder, | 508 Handle<JSObject> holder, |
| 507 Register holder_reg, | 509 Register holder_reg, |
| 508 Register scratch1, | 510 Register scratch1, |
| 509 Register scratch2, | 511 Register scratch2, |
| 510 Handle<String> name, | 512 Handle<String> name, |
| 511 int save_at_depth, | 513 int save_at_depth, |
| 512 Label* miss); | 514 Label* miss); |
| 513 | 515 |
| 516 |
| 514 protected: | 517 protected: |
| 515 Handle<Code> GetCodeWithFlags(Code::Flags flags, const char* name); | 518 Handle<Code> GetCodeWithFlags(Code::Flags flags, const char* name); |
| 516 Handle<Code> GetCodeWithFlags(Code::Flags flags, Handle<String> name); | 519 Handle<Code> GetCodeWithFlags(Code::Flags flags, Handle<String> name); |
| 517 | 520 |
| 518 MacroAssembler* masm() { return &masm_; } | 521 MacroAssembler* masm() { return &masm_; } |
| 519 void set_failure(Failure* failure) { failure_ = failure; } | 522 void set_failure(Failure* failure) { failure_ = failure; } |
| 520 | 523 |
| 521 void GenerateLoadField(Handle<JSObject> object, | 524 void GenerateLoadField(Handle<JSObject> object, |
| 522 Handle<JSObject> holder, | 525 Handle<JSObject> holder, |
| 523 Register receiver, | 526 Register receiver, |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 Handle<JSFunction> constant_function_; | 894 Handle<JSFunction> constant_function_; |
| 892 bool is_simple_api_call_; | 895 bool is_simple_api_call_; |
| 893 Handle<FunctionTemplateInfo> expected_receiver_type_; | 896 Handle<FunctionTemplateInfo> expected_receiver_type_; |
| 894 Handle<CallHandlerInfo> api_call_info_; | 897 Handle<CallHandlerInfo> api_call_info_; |
| 895 }; | 898 }; |
| 896 | 899 |
| 897 | 900 |
| 898 } } // namespace v8::internal | 901 } } // namespace v8::internal |
| 899 | 902 |
| 900 #endif // V8_STUB_CACHE_H_ | 903 #endif // V8_STUB_CACHE_H_ |
| OLD | NEW |