| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1054 if (exit_with_exception.is_linked()) { | 1054 if (exit_with_exception.is_linked()) { |
| 1055 __ Bind(&exit_with_exception); | 1055 __ Bind(&exit_with_exception); |
| 1056 __ Mov(w0, EXCEPTION); | 1056 __ Mov(w0, EXCEPTION); |
| 1057 __ B(&return_w0); | 1057 __ B(&return_w0); |
| 1058 } | 1058 } |
| 1059 | 1059 |
| 1060 CodeDesc code_desc; | 1060 CodeDesc code_desc; |
| 1061 masm_->GetCode(&code_desc); | 1061 masm_->GetCode(&code_desc); |
| 1062 Handle<Code> code = isolate()->factory()->NewCode( | 1062 Handle<Code> code = isolate()->factory()->NewCode( |
| 1063 code_desc, Code::ComputeFlags(Code::REGEXP), masm_->CodeObject()); | 1063 code_desc, Code::ComputeFlags(Code::REGEXP), masm_->CodeObject()); |
| 1064 PROFILE(Isolate::Current(), RegExpCodeCreateEvent(*code, *source)); | 1064 PROFILE(masm_->isolate(), RegExpCodeCreateEvent(*code, *source)); |
| 1065 return Handle<HeapObject>::cast(code); | 1065 return Handle<HeapObject>::cast(code); |
| 1066 } | 1066 } |
| 1067 | 1067 |
| 1068 | 1068 |
| 1069 void RegExpMacroAssemblerA64::GoTo(Label* to) { | 1069 void RegExpMacroAssemblerA64::GoTo(Label* to) { |
| 1070 BranchOrBacktrack(al, to); | 1070 BranchOrBacktrack(al, to); |
| 1071 } | 1071 } |
| 1072 | 1072 |
| 1073 void RegExpMacroAssemblerA64::IfRegisterGE(int reg, | 1073 void RegExpMacroAssemblerA64::IfRegisterGE(int reg, |
| 1074 int comparand, | 1074 int comparand, |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1307 } | 1307 } |
| 1308 | 1308 |
| 1309 | 1309 |
| 1310 int RegExpMacroAssemblerA64::CheckStackGuardState(Address* return_address, | 1310 int RegExpMacroAssemblerA64::CheckStackGuardState(Address* return_address, |
| 1311 Code* re_code, | 1311 Code* re_code, |
| 1312 Address re_frame, | 1312 Address re_frame, |
| 1313 int start_offset, | 1313 int start_offset, |
| 1314 const byte** input_start, | 1314 const byte** input_start, |
| 1315 const byte** input_end) { | 1315 const byte** input_end) { |
| 1316 Isolate* isolate = frame_entry<Isolate*>(re_frame, kIsolate); | 1316 Isolate* isolate = frame_entry<Isolate*>(re_frame, kIsolate); |
| 1317 ASSERT(isolate == Isolate::Current()); | |
| 1318 if (isolate->stack_guard()->IsStackOverflow()) { | 1317 if (isolate->stack_guard()->IsStackOverflow()) { |
| 1319 isolate->StackOverflow(); | 1318 isolate->StackOverflow(); |
| 1320 return EXCEPTION; | 1319 return EXCEPTION; |
| 1321 } | 1320 } |
| 1322 | 1321 |
| 1323 // If not real stack overflow the stack guard was used to interrupt | 1322 // If not real stack overflow the stack guard was used to interrupt |
| 1324 // execution for another purpose. | 1323 // execution for another purpose. |
| 1325 | 1324 |
| 1326 // If this is a direct call from JavaScript retry the RegExp forcing the call | 1325 // If this is a direct call from JavaScript retry the RegExp forcing the call |
| 1327 // through the runtime system. Currently the direct call cannot handle a GC. | 1326 // through the runtime system. Currently the direct call cannot handle a GC. |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1722 __ Ldrh(current_character(), MemOperand(input_end(), offset, SXTW)); | 1721 __ Ldrh(current_character(), MemOperand(input_end(), offset, SXTW)); |
| 1723 } | 1722 } |
| 1724 } | 1723 } |
| 1725 } | 1724 } |
| 1726 | 1725 |
| 1727 #endif // V8_INTERPRETED_REGEXP | 1726 #endif // V8_INTERPRETED_REGEXP |
| 1728 | 1727 |
| 1729 }} // namespace v8::internal | 1728 }} // namespace v8::internal |
| 1730 | 1729 |
| 1731 #endif // V8_TARGET_ARCH_A64 | 1730 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |