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

Side by Side Diff: src/mips/code-stubs-mips.cc

Issue 304553002: Replace STATIC_CHECK with STATIC_ASSERT. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 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/ia32/codegen-ia32.cc ('k') | src/mips/codegen-mips.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 // 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 #include "v8.h" 5 #include "v8.h"
6 6
7 #if V8_TARGET_ARCH_MIPS 7 #if V8_TARGET_ARCH_MIPS
8 8
9 #include "bootstrapper.h" 9 #include "bootstrapper.h"
10 #include "code-stubs.h" 10 #include "code-stubs.h"
(...skipping 2624 matching lines...) Expand 10 before | Expand all | Expand 10 after
2635 __ Branch(&runtime, ne, a0, Operand(a1)); 2635 __ Branch(&runtime, ne, a0, Operand(a1));
2636 __ lw(subject, FieldMemOperand(subject, ConsString::kFirstOffset)); 2636 __ lw(subject, FieldMemOperand(subject, ConsString::kFirstOffset));
2637 2637
2638 // (4) Is subject external? If yes, go to (7). 2638 // (4) Is subject external? If yes, go to (7).
2639 __ bind(&check_underlying); 2639 __ bind(&check_underlying);
2640 __ lw(a0, FieldMemOperand(subject, HeapObject::kMapOffset)); 2640 __ lw(a0, FieldMemOperand(subject, HeapObject::kMapOffset));
2641 __ lbu(a0, FieldMemOperand(a0, Map::kInstanceTypeOffset)); 2641 __ lbu(a0, FieldMemOperand(a0, Map::kInstanceTypeOffset));
2642 STATIC_ASSERT(kSeqStringTag == 0); 2642 STATIC_ASSERT(kSeqStringTag == 0);
2643 __ And(at, a0, Operand(kStringRepresentationMask)); 2643 __ And(at, a0, Operand(kStringRepresentationMask));
2644 // The underlying external string is never a short external string. 2644 // The underlying external string is never a short external string.
2645 STATIC_CHECK(ExternalString::kMaxShortLength < ConsString::kMinLength); 2645 STATIC_ASSERT(ExternalString::kMaxShortLength < ConsString::kMinLength);
2646 STATIC_CHECK(ExternalString::kMaxShortLength < SlicedString::kMinLength); 2646 STATIC_ASSERT(ExternalString::kMaxShortLength < SlicedString::kMinLength);
2647 __ Branch(&external_string, ne, at, Operand(zero_reg)); // Go to (7). 2647 __ Branch(&external_string, ne, at, Operand(zero_reg)); // Go to (7).
2648 2648
2649 // (5) Sequential string. Load regexp code according to encoding. 2649 // (5) Sequential string. Load regexp code according to encoding.
2650 __ bind(&seq_string); 2650 __ bind(&seq_string);
2651 // subject: sequential subject string (or look-alike, external string) 2651 // subject: sequential subject string (or look-alike, external string)
2652 // a3: original subject string 2652 // a3: original subject string
2653 // Load previous index and check range before a3 is overwritten. We have to 2653 // Load previous index and check range before a3 is overwritten. We have to
2654 // use a3 instead of subject here because subject might have been only made 2654 // use a3 instead of subject here because subject might have been only made
2655 // to look like a sequential string when it actually is an external string. 2655 // to look like a sequential string when it actually is an external string.
2656 __ lw(a1, MemOperand(sp, kPreviousIndexOffset)); 2656 __ lw(a1, MemOperand(sp, kPreviousIndexOffset));
(...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after
3832 // a2: length 3832 // a2: length
3833 // a3: adjusted start index (untagged) 3833 // a3: adjusted start index (untagged)
3834 Label two_byte_sequential, sequential_string, allocate_result; 3834 Label two_byte_sequential, sequential_string, allocate_result;
3835 STATIC_ASSERT(kExternalStringTag != 0); 3835 STATIC_ASSERT(kExternalStringTag != 0);
3836 STATIC_ASSERT(kSeqStringTag == 0); 3836 STATIC_ASSERT(kSeqStringTag == 0);
3837 __ And(t0, a1, Operand(kExternalStringTag)); 3837 __ And(t0, a1, Operand(kExternalStringTag));
3838 __ Branch(&sequential_string, eq, t0, Operand(zero_reg)); 3838 __ Branch(&sequential_string, eq, t0, Operand(zero_reg));
3839 3839
3840 // Handle external string. 3840 // Handle external string.
3841 // Rule out short external strings. 3841 // Rule out short external strings.
3842 STATIC_CHECK(kShortExternalStringTag != 0); 3842 STATIC_ASSERT(kShortExternalStringTag != 0);
3843 __ And(t0, a1, Operand(kShortExternalStringTag)); 3843 __ And(t0, a1, Operand(kShortExternalStringTag));
3844 __ Branch(&runtime, ne, t0, Operand(zero_reg)); 3844 __ Branch(&runtime, ne, t0, Operand(zero_reg));
3845 __ lw(t1, FieldMemOperand(t1, ExternalString::kResourceDataOffset)); 3845 __ lw(t1, FieldMemOperand(t1, ExternalString::kResourceDataOffset));
3846 // t1 already points to the first character of underlying string. 3846 // t1 already points to the first character of underlying string.
3847 __ jmp(&allocate_result); 3847 __ jmp(&allocate_result);
3848 3848
3849 __ bind(&sequential_string); 3849 __ bind(&sequential_string);
3850 // Locate first character of underlying subject string. 3850 // Locate first character of underlying subject string.
3851 STATIC_ASSERT(SeqTwoByteString::kHeaderSize == SeqOneByteString::kHeaderSize); 3851 STATIC_ASSERT(SeqTwoByteString::kHeaderSize == SeqOneByteString::kHeaderSize);
3852 __ Addu(t1, t1, Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag)); 3852 __ Addu(t1, t1, Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
(...skipping 1648 matching lines...) Expand 10 before | Expand all | Expand 10 after
5501 MemOperand(fp, 6 * kPointerSize), 5501 MemOperand(fp, 6 * kPointerSize),
5502 NULL); 5502 NULL);
5503 } 5503 }
5504 5504
5505 5505
5506 #undef __ 5506 #undef __
5507 5507
5508 } } // namespace v8::internal 5508 } } // namespace v8::internal
5509 5509
5510 #endif // V8_TARGET_ARCH_MIPS 5510 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/ia32/codegen-ia32.cc ('k') | src/mips/codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698