| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 | 300 |
| 301 // ------------------------------------------------------------------------ | 301 // ------------------------------------------------------------------------ |
| 302 | 302 |
| 303 | 303 |
| 304 // Support functions for IC stubs for callbacks. | 304 // Support functions for IC stubs for callbacks. |
| 305 Object* LoadCallbackProperty(Arguments args); | 305 Object* LoadCallbackProperty(Arguments args); |
| 306 Object* StoreCallbackProperty(Arguments args); | 306 Object* StoreCallbackProperty(Arguments args); |
| 307 | 307 |
| 308 | 308 |
| 309 // Support functions for IC stubs for interceptors. | 309 // Support functions for IC stubs for interceptors. |
| 310 Object* LoadInterceptorProperty(Arguments args); | 310 Object* LoadPropertyWithInterceptorOnly(Arguments args); |
| 311 Object* LoadPropertyWithInterceptorForLoad(Arguments args); |
| 312 Object* LoadPropertyWithInterceptorForCall(Arguments args); |
| 311 Object* StoreInterceptorProperty(Arguments args); | 313 Object* StoreInterceptorProperty(Arguments args); |
| 312 Object* CallInterceptorProperty(Arguments args); | 314 Object* CallInterceptorProperty(Arguments args); |
| 313 | 315 |
| 314 | 316 |
| 315 // Support function for computing call IC miss stubs. | 317 // Support function for computing call IC miss stubs. |
| 316 Handle<Code> ComputeCallMiss(int argc); | 318 Handle<Code> ComputeCallMiss(int argc); |
| 317 | 319 |
| 318 | 320 |
| 319 // The stub compiler compiles stubs for the stub cache. | 321 // The stub compiler compiles stubs for the stub cache. |
| 320 class StubCompiler BASE_EMBEDDED { | 322 class StubCompiler BASE_EMBEDDED { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 Builtins::Name storage_extend, | 372 Builtins::Name storage_extend, |
| 371 JSObject* object, | 373 JSObject* object, |
| 372 int index, | 374 int index, |
| 373 Map* transition, | 375 Map* transition, |
| 374 Register receiver_reg, | 376 Register receiver_reg, |
| 375 Register name_reg, | 377 Register name_reg, |
| 376 Register scratch, | 378 Register scratch, |
| 377 Label* miss_label); | 379 Label* miss_label); |
| 378 static void GenerateLoadMiss(MacroAssembler* masm, Code::Kind kind); | 380 static void GenerateLoadMiss(MacroAssembler* masm, Code::Kind kind); |
| 379 | 381 |
| 380 protected: | |
| 381 Object* GetCodeWithFlags(Code::Flags flags, const char* name); | |
| 382 Object* GetCodeWithFlags(Code::Flags flags, String* name); | |
| 383 | |
| 384 MacroAssembler* masm() { return &masm_; } | |
| 385 void set_failure(Failure* failure) { failure_ = failure; } | |
| 386 | |
| 387 // Check the integrity of the prototype chain to make sure that the | 382 // Check the integrity of the prototype chain to make sure that the |
| 388 // current IC is still valid. | 383 // current IC is still valid. |
| 389 Register CheckPrototypes(JSObject* object, | 384 Register CheckPrototypes(JSObject* object, |
| 390 Register object_reg, | 385 Register object_reg, |
| 391 JSObject* holder, | 386 JSObject* holder, |
| 392 Register holder_reg, | 387 Register holder_reg, |
| 393 Register scratch, | 388 Register scratch, |
| 394 String* name, | 389 String* name, |
| 395 Label* miss); | 390 Label* miss); |
| 396 | 391 |
| 392 protected: |
| 393 Object* GetCodeWithFlags(Code::Flags flags, const char* name); |
| 394 Object* GetCodeWithFlags(Code::Flags flags, String* name); |
| 395 |
| 396 MacroAssembler* masm() { return &masm_; } |
| 397 void set_failure(Failure* failure) { failure_ = failure; } |
| 398 |
| 397 void GenerateLoadField(JSObject* object, | 399 void GenerateLoadField(JSObject* object, |
| 398 JSObject* holder, | 400 JSObject* holder, |
| 399 Register receiver, | 401 Register receiver, |
| 400 Register scratch1, | 402 Register scratch1, |
| 401 Register scratch2, | 403 Register scratch2, |
| 402 int index, | 404 int index, |
| 403 String* name, | 405 String* name, |
| 404 Label* miss); | 406 Label* miss); |
| 405 | 407 |
| 406 void GenerateLoadCallback(JSObject* object, | 408 void GenerateLoadCallback(JSObject* object, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 417 JSObject* holder, | 419 JSObject* holder, |
| 418 Register receiver, | 420 Register receiver, |
| 419 Register scratch1, | 421 Register scratch1, |
| 420 Register scratch2, | 422 Register scratch2, |
| 421 Object* value, | 423 Object* value, |
| 422 String* name, | 424 String* name, |
| 423 Label* miss); | 425 Label* miss); |
| 424 | 426 |
| 425 void GenerateLoadInterceptor(JSObject* object, | 427 void GenerateLoadInterceptor(JSObject* object, |
| 426 JSObject* holder, | 428 JSObject* holder, |
| 427 Smi* lookup_hint, | 429 LookupResult* lookup, |
| 428 Register receiver, | 430 Register receiver, |
| 429 Register name_reg, | 431 Register name_reg, |
| 430 Register scratch1, | 432 Register scratch1, |
| 431 Register scratch2, | 433 Register scratch2, |
| 432 String* name, | 434 String* name, |
| 433 Label* miss); | 435 Label* miss); |
| 434 | 436 |
| 435 private: | 437 private: |
| 436 HandleScope scope_; | 438 HandleScope scope_; |
| 437 MacroAssembler masm_; | 439 MacroAssembler masm_; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 | 557 |
| 556 const ParameterCount& arguments() { return arguments_; } | 558 const ParameterCount& arguments() { return arguments_; } |
| 557 | 559 |
| 558 Object* GetCode(PropertyType type, String* name); | 560 Object* GetCode(PropertyType type, String* name); |
| 559 }; | 561 }; |
| 560 | 562 |
| 561 | 563 |
| 562 } } // namespace v8::internal | 564 } } // namespace v8::internal |
| 563 | 565 |
| 564 #endif // V8_STUB_CACHE_H_ | 566 #endif // V8_STUB_CACHE_H_ |
| OLD | NEW |