| 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 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 lookup->holder(), | 501 lookup->holder(), |
| 502 lookup->GetFieldIndex()); | 502 lookup->GetFieldIndex()); |
| 503 __ Ret(); | 503 __ Ret(); |
| 504 } else { | 504 } else { |
| 505 ASSERT(lookup->type() == CALLBACKS); | 505 ASSERT(lookup->type() == CALLBACKS); |
| 506 ASSERT(lookup->GetCallbackObject()->IsAccessorInfo()); | 506 ASSERT(lookup->GetCallbackObject()->IsAccessorInfo()); |
| 507 ASSERT(callback != NULL); | 507 ASSERT(callback != NULL); |
| 508 ASSERT(callback->getter() != NULL); | 508 ASSERT(callback->getter() != NULL); |
| 509 | 509 |
| 510 Label cleanup; | 510 Label cleanup; |
| 511 __ pop(scratch2); | 511 __ push(receiver); |
| 512 __ Push(receiver, scratch2); | |
| 513 | 512 |
| 514 holder = stub_compiler->CheckPrototypes(holder_obj, holder, | 513 holder = stub_compiler->CheckPrototypes(holder_obj, holder, |
| 515 lookup->holder(), scratch1, | 514 lookup->holder(), scratch1, |
| 516 scratch2, | 515 scratch2, |
| 517 name, | 516 name, |
| 518 &cleanup); | 517 &cleanup); |
| 519 | 518 |
| 520 __ push(holder); | 519 __ push(holder); |
| 521 __ Move(holder, Handle<AccessorInfo>(callback)); | 520 __ Move(holder, Handle<AccessorInfo>(callback)); |
| 522 __ push(holder); | 521 __ push(holder); |
| 523 __ ldr(scratch1, FieldMemOperand(holder, AccessorInfo::kDataOffset)); | 522 __ ldr(scratch1, FieldMemOperand(holder, AccessorInfo::kDataOffset)); |
| 524 __ Push(scratch1, name_); | 523 __ Push(scratch1, name_); |
| 525 | 524 |
| 526 ExternalReference ref = | 525 ExternalReference ref = |
| 527 ExternalReference(IC_Utility(IC::kLoadCallbackProperty)); | 526 ExternalReference(IC_Utility(IC::kLoadCallbackProperty)); |
| 528 __ TailCallExternalReference(ref, 5, 1); | 527 __ TailCallExternalReference(ref, 5, 1); |
| 529 | 528 |
| 530 __ bind(&cleanup); | 529 __ bind(&cleanup); |
| 531 __ pop(scratch1); | |
| 532 __ pop(scratch2); | 530 __ pop(scratch2); |
| 533 __ push(scratch1); | |
| 534 } | 531 } |
| 535 } | 532 } |
| 536 | 533 |
| 537 | 534 |
| 538 void CompileRegular(MacroAssembler* masm, | 535 void CompileRegular(MacroAssembler* masm, |
| 539 Register receiver, | 536 Register receiver, |
| 540 Register holder, | 537 Register holder, |
| 541 Register scratch, | 538 Register scratch, |
| 542 JSObject* holder_obj, | 539 JSObject* holder_obj, |
| 543 Label* miss_label) { | 540 Label* miss_label) { |
| (...skipping 1605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2149 // Return the generated code. | 2146 // Return the generated code. |
| 2150 return GetCode(); | 2147 return GetCode(); |
| 2151 } | 2148 } |
| 2152 | 2149 |
| 2153 | 2150 |
| 2154 #undef __ | 2151 #undef __ |
| 2155 | 2152 |
| 2156 } } // namespace v8::internal | 2153 } } // namespace v8::internal |
| 2157 | 2154 |
| 2158 #endif // V8_TARGET_ARCH_ARM | 2155 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |