| OLD | NEW |
| 1 // Copyright 2008-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2008-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 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1102 | 1102 |
| 1103 | 1103 |
| 1104 const byte* RegExpMacroAssemblerIA32::StringCharacterPosition(String* subject, | 1104 const byte* RegExpMacroAssemblerIA32::StringCharacterPosition(String* subject, |
| 1105 int start_index) { | 1105 int start_index) { |
| 1106 // Not just flat, but ultra flat. | 1106 // Not just flat, but ultra flat. |
| 1107 ASSERT(subject->IsExternalString() || subject->IsSeqString()); | 1107 ASSERT(subject->IsExternalString() || subject->IsSeqString()); |
| 1108 ASSERT(start_index >= 0); | 1108 ASSERT(start_index >= 0); |
| 1109 ASSERT(start_index <= subject->length()); | 1109 ASSERT(start_index <= subject->length()); |
| 1110 if (StringShape(subject).IsAsciiRepresentation()) { | 1110 if (StringShape(subject).IsAsciiRepresentation()) { |
| 1111 const byte* address; | 1111 const byte* address; |
| 1112 if (subject->IsExternalAsciiString()) { | 1112 if (StringShape(subject).IsExternal()) { |
| 1113 const char* data = ExternalAsciiString::cast(subject)->resource()->data(); | 1113 const char* data = ExternalAsciiString::cast(subject)->resource()->data(); |
| 1114 address = reinterpret_cast<const byte*>(data); | 1114 address = reinterpret_cast<const byte*>(data); |
| 1115 } else { | 1115 } else { |
| 1116 ASSERT(subject->IsSeqAsciiString()); | 1116 ASSERT(subject->IsSeqAsciiString()); |
| 1117 char* data = SeqAsciiString::cast(subject)->GetChars(); | 1117 char* data = SeqAsciiString::cast(subject)->GetChars(); |
| 1118 address = reinterpret_cast<const byte*>(data); | 1118 address = reinterpret_cast<const byte*>(data); |
| 1119 } | 1119 } |
| 1120 return address + start_index; | 1120 return address + start_index; |
| 1121 } | 1121 } |
| 1122 const uc16* data; | 1122 const uc16* data; |
| 1123 if (subject->IsExternalTwoByteString()) { | 1123 if (StringShape(subject).IsExternal()) { |
| 1124 data = ExternalTwoByteString::cast(subject)->resource()->data(); | 1124 data = ExternalTwoByteString::cast(subject)->resource()->data(); |
| 1125 } else { | 1125 } else { |
| 1126 ASSERT(subject->IsSeqTwoByteString()); | 1126 ASSERT(subject->IsSeqTwoByteString()); |
| 1127 data = SeqTwoByteString::cast(subject)->GetChars(); | 1127 data = SeqTwoByteString::cast(subject)->GetChars(); |
| 1128 } | 1128 } |
| 1129 return reinterpret_cast<const byte*>(data + start_index); | 1129 return reinterpret_cast<const byte*>(data + start_index); |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 | 1132 |
| 1133 int RegExpMacroAssemblerIA32::CheckStackGuardState(Address* return_address, | 1133 int RegExpMacroAssemblerIA32::CheckStackGuardState(Address* return_address, |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 | 1376 |
| 1377 | 1377 |
| 1378 void RegExpMacroAssemblerIA32::LoadConstantBufferAddress(Register reg, | 1378 void RegExpMacroAssemblerIA32::LoadConstantBufferAddress(Register reg, |
| 1379 ArraySlice* buffer) { | 1379 ArraySlice* buffer) { |
| 1380 __ mov(reg, buffer->array()); | 1380 __ mov(reg, buffer->array()); |
| 1381 __ add(Operand(reg), Immediate(buffer->base_offset())); | 1381 __ add(Operand(reg), Immediate(buffer->base_offset())); |
| 1382 } | 1382 } |
| 1383 | 1383 |
| 1384 #undef __ | 1384 #undef __ |
| 1385 }} // namespace v8::internal | 1385 }} // namespace v8::internal |
| OLD | NEW |