From 72878509e2f17822631aae8943211dc05bb502ac Mon Sep 17 00:00:00 2001 From: "yangguo@chromium.org" Date: Wed, 16 Jan 2013 10:00:31 +0000 Subject: [PATCH] MIPS: Continues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag. Port r13344 (e5638dd9) BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/11971003 Patch from Akos Palfi . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/regexp-macro-assembler-mips.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mips/regexp-macro-assembler-mips.cc b/src/mips/regexp-macro-assembler-mips.cc index 6ace471ea1..1ae2a7a845 100644 --- a/src/mips/regexp-macro-assembler-mips.cc +++ b/src/mips/regexp-macro-assembler-mips.cc @@ -341,7 +341,17 @@ void RegExpMacroAssemblerMIPS::CheckNotBackReferenceIgnoreCase( __ Or(t0, t0, Operand(0x20)); // Also convert input character. __ Branch(&fail, ne, t0, Operand(a3)); __ Subu(a3, a3, Operand('a')); +#ifndef ENABLE_LATIN_1 __ Branch(&fail, hi, a3, Operand('z' - 'a')); // Is a3 a lowercase letter? +#else + __ Branch(&loop_check, ls, a3, Operand('z' - 'a')); + // Latin-1: Check for values in range [224,254] but not 247. + __ Subu(a3, a3, Operand(224 - 'a')); + // Weren't Latin-1 letters. + __ Branch(&fail, hi, a3, Operand(254 - 224)); + // Check for 247. + __ Branch(&fail, eq, a3, Operand(247 - 224)); +#endif __ bind(&loop_check); __ Branch(&loop, lt, a0, Operand(a1));