| OLD | NEW |
| 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 "codegen.h" | 9 #include "codegen.h" |
| 10 #include "macro-assembler.h" | 10 #include "macro-assembler.h" |
| (...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 998 // Handle external strings. | 998 // Handle external strings. |
| 999 __ bind(&external_string); | 999 __ bind(&external_string); |
| 1000 if (FLAG_debug_code) { | 1000 if (FLAG_debug_code) { |
| 1001 // Assert that we do not have a cons or slice (indirect strings) here. | 1001 // Assert that we do not have a cons or slice (indirect strings) here. |
| 1002 // Sequential strings have already been ruled out. | 1002 // Sequential strings have already been ruled out. |
| 1003 __ And(at, result, Operand(kIsIndirectStringMask)); | 1003 __ And(at, result, Operand(kIsIndirectStringMask)); |
| 1004 __ Assert(eq, kExternalStringExpectedButNotFound, | 1004 __ Assert(eq, kExternalStringExpectedButNotFound, |
| 1005 at, Operand(zero_reg)); | 1005 at, Operand(zero_reg)); |
| 1006 } | 1006 } |
| 1007 // Rule out short external strings. | 1007 // Rule out short external strings. |
| 1008 STATIC_CHECK(kShortExternalStringTag != 0); | 1008 STATIC_ASSERT(kShortExternalStringTag != 0); |
| 1009 __ And(at, result, Operand(kShortExternalStringMask)); | 1009 __ And(at, result, Operand(kShortExternalStringMask)); |
| 1010 __ Branch(call_runtime, ne, at, Operand(zero_reg)); | 1010 __ Branch(call_runtime, ne, at, Operand(zero_reg)); |
| 1011 __ lw(string, FieldMemOperand(string, ExternalString::kResourceDataOffset)); | 1011 __ lw(string, FieldMemOperand(string, ExternalString::kResourceDataOffset)); |
| 1012 | 1012 |
| 1013 Label ascii, done; | 1013 Label ascii, done; |
| 1014 __ bind(&check_encoding); | 1014 __ bind(&check_encoding); |
| 1015 STATIC_ASSERT(kTwoByteStringTag == 0); | 1015 STATIC_ASSERT(kTwoByteStringTag == 0); |
| 1016 __ And(at, result, Operand(kStringEncodingMask)); | 1016 __ And(at, result, Operand(kStringEncodingMask)); |
| 1017 __ Branch(&ascii, ne, at, Operand(zero_reg)); | 1017 __ Branch(&ascii, ne, at, Operand(zero_reg)); |
| 1018 // Two-byte string. | 1018 // Two-byte string. |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1193 patcher.masm()->nop(); // Pad the empty space. | 1193 patcher.masm()->nop(); // Pad the empty space. |
| 1194 } | 1194 } |
| 1195 } | 1195 } |
| 1196 | 1196 |
| 1197 | 1197 |
| 1198 #undef __ | 1198 #undef __ |
| 1199 | 1199 |
| 1200 } } // namespace v8::internal | 1200 } } // namespace v8::internal |
| 1201 | 1201 |
| 1202 #endif // V8_TARGET_ARCH_MIPS | 1202 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |