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

Side by Side Diff: src/arm/codegen-arm.cc

Issue 22715004: Version 3.20.15 (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Add TypedArray API and correctness patches r16033 and r16084 Created 7 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/debug-arm.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 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 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 __ add(r7, r7, Operand(8)); 525 __ add(r7, r7, Operand(8));
526 __ b(&entry); 526 __ b(&entry);
527 527
528 // Hole found, store the-hole NaN. 528 // Hole found, store the-hole NaN.
529 __ bind(&convert_hole); 529 __ bind(&convert_hole);
530 if (FLAG_debug_code) { 530 if (FLAG_debug_code) {
531 // Restore a "smi-untagged" heap object. 531 // Restore a "smi-untagged" heap object.
532 __ SmiTag(r9); 532 __ SmiTag(r9);
533 __ orr(r9, r9, Operand(1)); 533 __ orr(r9, r9, Operand(1));
534 __ CompareRoot(r9, Heap::kTheHoleValueRootIndex); 534 __ CompareRoot(r9, Heap::kTheHoleValueRootIndex);
535 __ Assert(eq, kObjectFoundInSmiOnlyArray); 535 __ Assert(eq, "object found in smi-only array");
536 } 536 }
537 __ Strd(r4, r5, MemOperand(r7, 8, PostIndex)); 537 __ Strd(r4, r5, MemOperand(r7, 8, PostIndex));
538 538
539 __ bind(&entry); 539 __ bind(&entry);
540 __ cmp(r7, r6); 540 __ cmp(r7, r6);
541 __ b(lt, &loop); 541 __ b(lt, &loop);
542 542
543 __ pop(lr); 543 __ pop(lr);
544 __ bind(&done); 544 __ bind(&done);
545 } 545 }
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 string, 721 string,
722 Operand(SeqTwoByteString::kHeaderSize - kHeapObjectTag)); 722 Operand(SeqTwoByteString::kHeaderSize - kHeapObjectTag));
723 __ jmp(&check_encoding); 723 __ jmp(&check_encoding);
724 724
725 // Handle external strings. 725 // Handle external strings.
726 __ bind(&external_string); 726 __ bind(&external_string);
727 if (FLAG_debug_code) { 727 if (FLAG_debug_code) {
728 // Assert that we do not have a cons or slice (indirect strings) here. 728 // Assert that we do not have a cons or slice (indirect strings) here.
729 // Sequential strings have already been ruled out. 729 // Sequential strings have already been ruled out.
730 __ tst(result, Operand(kIsIndirectStringMask)); 730 __ tst(result, Operand(kIsIndirectStringMask));
731 __ Assert(eq, kExternalStringExpectedButNotFound); 731 __ Assert(eq, "external string expected, but not found");
732 } 732 }
733 // Rule out short external strings. 733 // Rule out short external strings.
734 STATIC_CHECK(kShortExternalStringTag != 0); 734 STATIC_CHECK(kShortExternalStringTag != 0);
735 __ tst(result, Operand(kShortExternalStringMask)); 735 __ tst(result, Operand(kShortExternalStringMask));
736 __ b(ne, call_runtime); 736 __ b(ne, call_runtime);
737 __ ldr(string, FieldMemOperand(string, ExternalString::kResourceDataOffset)); 737 __ ldr(string, FieldMemOperand(string, ExternalString::kResourceDataOffset));
738 738
739 Label ascii, done; 739 Label ascii, done;
740 __ bind(&check_encoding); 740 __ bind(&check_encoding);
741 STATIC_ASSERT(kTwoByteStringTag == 0); 741 STATIC_ASSERT(kTwoByteStringTag == 0);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 patcher.masm()->add(r0, pc, Operand(-8)); 884 patcher.masm()->add(r0, pc, Operand(-8));
885 patcher.masm()->ldr(pc, MemOperand(pc, -4)); 885 patcher.masm()->ldr(pc, MemOperand(pc, -4));
886 patcher.masm()->dd(reinterpret_cast<uint32_t>(stub->instruction_start())); 886 patcher.masm()->dd(reinterpret_cast<uint32_t>(stub->instruction_start()));
887 } 887 }
888 } 888 }
889 889
890 890
891 } } // namespace v8::internal 891 } } // namespace v8::internal
892 892
893 #endif // V8_TARGET_ARCH_ARM 893 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/debug-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698