Index: src/assembler.cc |
diff --git a/src/assembler.cc b/src/assembler.cc |
index d1bbd88c1971383ca19a6d6f49e966b62022bd85..e27aed5f34dd2121475dd9dd21d2e5699f2130d7 100644 |
--- a/src/assembler.cc |
+++ b/src/assembler.cc |
@@ -63,6 +63,7 @@ |
#include "src/runtime/runtime.h" |
#include "src/simulator.h" // For flushing instruction cache. |
#include "src/snapshot/serializer-common.h" |
+#include "src/string-search.h" |
#include "src/wasm/wasm-external-refs.h" |
// Include native regexp-macro-assembler. |
@@ -1562,12 +1563,28 @@ ExternalReference ExternalReference::libc_memset_function(Isolate* isolate) { |
return ExternalReference(Redirect(isolate, FUNCTION_ADDR(libc_memset))); |
} |
+template <typename SubjectChar, typename PatternChar> |
+ExternalReference ExternalReference::search_string_raw(Isolate* isolate) { |
+ auto f = SearchStringRaw<SubjectChar, PatternChar>; |
+ return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f))); |
+} |
+ |
ExternalReference ExternalReference::try_internalize_string_function( |
Isolate* isolate) { |
return ExternalReference(Redirect( |
isolate, FUNCTION_ADDR(StringTable::LookupStringIfExists_NoAllocate))); |
} |
+// Explicit instantiations for all combinations of 1- and 2-byte strings. |
+template ExternalReference |
+ExternalReference::search_string_raw<const uint8_t, const uint8_t>(Isolate*); |
+template ExternalReference |
+ExternalReference::search_string_raw<const uint8_t, const uc16>(Isolate*); |
+template ExternalReference |
+ExternalReference::search_string_raw<const uc16, const uint8_t>(Isolate*); |
+template ExternalReference |
+ExternalReference::search_string_raw<const uc16, const uc16>(Isolate*); |
+ |
ExternalReference ExternalReference::page_flags(Page* page) { |
return ExternalReference(reinterpret_cast<Address>(page) + |
MemoryChunk::kFlagsOffset); |