Chromium Code Reviews| Index: regexp2000/src/jsregexp.cc |
| diff --git a/regexp2000/src/jsregexp.cc b/regexp2000/src/jsregexp.cc |
| index 862040a582c4037fe1d7c34b56de3b5e97968853..1c835314b35ee790e14d7a99f2e88b69f92a4b68 100644 |
| --- a/regexp2000/src/jsregexp.cc |
| +++ b/regexp2000/src/jsregexp.cc |
| @@ -43,6 +43,7 @@ |
| #include "assembler-re2k.h" |
| #include "regexp-macro-assembler.h" |
| #include "regexp-macro-assembler-re2k.h" |
| +#include "regexp-macro-assembler-ia32.h" |
| #include "interpreter-re2k.h" |
| // Including pcre.h undefines DEBUG to avoid getting debug output from |
| @@ -2290,19 +2291,32 @@ Handle<FixedArray> RegExpEngine::Compile(RegExpParseResult* input, |
| if (node_return != NULL) *node_return = node; |
| Analysis analysis; |
| analysis.EnsureAnalyzed(node); |
| - byte codes[1024]; |
| - Re2kAssembler assembler(Vector<byte>(codes, 1024)); |
| - RegExpMacroAssemblerRe2k macro_assembler(&assembler); |
| - return compiler.Assemble(¯o_assembler, |
| - node, |
| - input->capture_count, |
| - ignore_case); |
| -} |
| - |
| -RegExpMacroAssembler::RegExpMacroAssembler() { |
| -} |
| -RegExpMacroAssembler::~RegExpMacroAssembler() { |
| + if (FLAG_re2k_native) { |
|
Erik Corry
2008/11/21 13:03:04
We should probably either ignore the flag on ARM o
Lasse Reichstein
2008/11/24 08:32:33
Done.
|
| + // DON'T USE ON ARM YET! |
| +#if defined __arm__ || defined ARM || defined __thumb__ |
| + UNREACHABLE(); |
| + return NULL; |
| +#else |
| + // FIXME. |
|
Erik Corry
2008/11/21 13:03:04
Thuis should be a TODO with a name or issue number
Lasse Reichstein
2008/11/24 08:32:33
Done.
|
| + // Don't compile *here*, we don't know the input type yet! This won't work! |
|
Erik Corry
2008/11/21 13:03:04
For now we just do 16 bit always for the bytecode
Lasse Reichstein
2008/11/24 08:32:33
The ia32 code will also assume 16-bit strings then
|
| + RegExpMacroAssemblerIA32 macro_assembler(RegExpMacroAssemblerIA32::ASCII, |
| + input->capture_count, |
| + ignore_case); |
| + return compiler.Assemble(¯o_assembler, |
| + node, |
| + input->capture_count, |
| + ignore_case); |
| +#endif |
| + } else { |
| + byte codes[1024]; |
| + Re2kAssembler assembler(Vector<byte>(codes, 1024)); |
| + RegExpMacroAssemblerRe2k macro_assembler(&assembler); |
| + return compiler.Assemble(¯o_assembler, |
| + node, |
| + input->capture_count, |
| + ignore_case); |
| + } |
| } |