Bug 1024678 - Avoid pushing/popping floating point registers in regexp jitcode. r=jandem, a=lsblakk
authorBrian Hackett <bhackett1024@gmail.com>
Thu, 12 Jun 2014 14:13:49 -0600
changeset 207288 b10a750d205d612353eed42b1d2e63d5e8a4a275
parent 207287 70d92047cc5dc0d740ecfbf89fbab127f804fb0f
child 207289 e13a7d705f6c0d149272e3f67a5e9a720563c27d
push id3741
push userasasaki@mozilla.com
push dateMon, 21 Jul 2014 20:25:18 +0000
treeherdermozilla-beta@4d6f46f5af68 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem, lsblakk
bugs1024678
milestone32.0a2
Bug 1024678 - Avoid pushing/popping floating point registers in regexp jitcode. r=jandem, a=lsblakk
js/src/irregexp/NativeRegExpMacroAssembler.cpp
--- a/js/src/irregexp/NativeRegExpMacroAssembler.cpp
+++ b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
@@ -389,17 +389,17 @@ NativeRegExpMacroAssembler::GenerateCode
         // StackPointer to use for accessing FrameData.
         masm.bind(&stack_overflow_label_);
 
         Label grow_failed;
 
         masm.movePtr(ImmPtr(runtime), temp1);
 
         // Save registers before calling C function
-        RegisterSet volatileRegs = RegisterSet::Volatile();
+        GeneralRegisterSet volatileRegs = GeneralRegisterSet::Volatile();
 #if defined(JS_CODEGEN_ARM)
         volatileRegs.add(Register::FromCode(Registers::lr));
 #elif defined(JS_CODEGEN_MIPS)
         volatileRegs.add(Register::FromCode(Registers::ra));
 #endif
         volatileRegs.takeUnchecked(temp0);
         volatileRegs.takeUnchecked(temp1);
         masm.PushRegsInMask(volatileRegs);
@@ -728,17 +728,17 @@ NativeRegExpMacroAssembler::CheckNotBack
     masm.branchPtr(Assembler::GreaterThan, temp0, ImmWord(0), BranchOrBacktrack(on_no_match));
 
     if (mode_ == ASCII) {
         MOZ_ASSUME_UNREACHABLE("Ascii case not implemented");
     } else {
         JS_ASSERT(mode_ == JSCHAR);
 
         // Note: temp1 needs to be saved/restored if it is volatile, as it is used after the call.
-        RegisterSet volatileRegs = RegisterSet::Volatile();
+        GeneralRegisterSet volatileRegs = GeneralRegisterSet::Volatile();
         volatileRegs.takeUnchecked(temp0);
         volatileRegs.takeUnchecked(temp2);
         masm.PushRegsInMask(volatileRegs);
 
         // Set byte_offset1.
         // Start of capture, where current_character already holds string-end negative offset.
         masm.addPtr(input_end_pointer, current_character);