| Index: src/x64/regexp-macro-assembler-x64.cc
|
| diff --git a/src/x64/regexp-macro-assembler-x64.cc b/src/x64/regexp-macro-assembler-x64.cc
|
| index 208bb60055769ee8f660dae5ed97130c6368440d..3d5d85bad4f76efc8a3658a0f31e8fc077421114 100644
|
| --- a/src/x64/regexp-macro-assembler-x64.cc
|
| +++ b/src/x64/regexp-macro-assembler-x64.cc
|
| @@ -166,7 +166,7 @@ void RegExpMacroAssemblerX64::AdvanceRegister(int reg, int by) {
|
| ASSERT(reg >= 0);
|
| ASSERT(reg < num_registers_);
|
| if (by != 0) {
|
| - __ addq(register_location(reg), Immediate(by));
|
| + __ addp(register_location(reg), Immediate(by));
|
| }
|
| }
|
|
|
| @@ -175,7 +175,7 @@ void RegExpMacroAssemblerX64::Backtrack() {
|
| CheckPreemption();
|
| // Pop Code* offset from backtrack stack, add Code* and jump to location.
|
| Pop(rbx);
|
| - __ addq(rbx, code_object_pointer());
|
| + __ addp(rbx, code_object_pointer());
|
| __ jmp(rbx);
|
| }
|
|
|
| @@ -243,7 +243,7 @@ void RegExpMacroAssemblerX64::CheckNotBackReferenceIgnoreCase(
|
| Label fallthrough;
|
| __ movq(rdx, register_location(start_reg)); // Offset of start of capture
|
| __ movq(rbx, register_location(start_reg + 1)); // Offset of end of capture
|
| - __ subq(rbx, rdx); // Length of capture.
|
| + __ subp(rbx, rdx); // Length of capture.
|
|
|
| // -----------------------
|
| // rdx = Start offset of capture.
|
| @@ -275,7 +275,7 @@ void RegExpMacroAssemblerX64::CheckNotBackReferenceIgnoreCase(
|
|
|
| __ lea(r9, Operand(rsi, rdx, times_1, 0));
|
| __ lea(r11, Operand(rsi, rdi, times_1, 0));
|
| - __ addq(rbx, r9); // End of capture
|
| + __ addp(rbx, r9); // End of capture
|
| // ---------------------
|
| // r11 - current input character address
|
| // r9 - current capture character address
|
| @@ -308,8 +308,8 @@ void RegExpMacroAssemblerX64::CheckNotBackReferenceIgnoreCase(
|
| __ j(equal, on_no_match);
|
| __ bind(&loop_increment);
|
| // Increment pointers into match and capture strings.
|
| - __ addq(r11, Immediate(1));
|
| - __ addq(r9, Immediate(1));
|
| + __ addp(r11, Immediate(1));
|
| + __ addp(r9, Immediate(1));
|
| // Compare to end of capture, and loop if not done.
|
| __ cmpq(r9, rbx);
|
| __ j(below, &loop);
|
| @@ -392,7 +392,7 @@ void RegExpMacroAssemblerX64::CheckNotBackReference(
|
| // Find length of back-referenced capture.
|
| __ movq(rdx, register_location(start_reg));
|
| __ movq(rax, register_location(start_reg + 1));
|
| - __ subq(rax, rdx); // Length to check.
|
| + __ subp(rax, rdx); // Length to check.
|
|
|
| // Fail on partial or illegal capture (start of capture after end of capture).
|
| // This must not happen (no back-reference can reference a capture that wasn't
|
| @@ -413,7 +413,7 @@ void RegExpMacroAssemblerX64::CheckNotBackReference(
|
|
|
| // Compute pointers to match string and capture string
|
| __ lea(rbx, Operand(rsi, rdi, times_1, 0)); // Start of match.
|
| - __ addq(rdx, rsi); // Start of capture.
|
| + __ addp(rdx, rsi); // Start of capture.
|
| __ lea(r9, Operand(rdx, rax, times_1, 0)); // End of capture
|
|
|
| // -----------------------
|
| @@ -433,8 +433,8 @@ void RegExpMacroAssemblerX64::CheckNotBackReference(
|
| }
|
| BranchOrBacktrack(not_equal, on_no_match);
|
| // Increment pointers into capture and match string.
|
| - __ addq(rbx, Immediate(char_size()));
|
| - __ addq(rdx, Immediate(char_size()));
|
| + __ addp(rbx, Immediate(char_size()));
|
| + __ addp(rdx, Immediate(char_size()));
|
| // Check if we have reached end of match area.
|
| __ cmpq(rdx, r9);
|
| __ j(below, &loop);
|
| @@ -719,7 +719,7 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| ExternalReference::address_of_stack_limit(isolate());
|
| __ movp(rcx, rsp);
|
| __ Move(kScratchRegister, stack_limit);
|
| - __ subq(rcx, Operand(kScratchRegister, 0));
|
| + __ subp(rcx, Operand(kScratchRegister, 0));
|
| // Handle it if the stack pointer is already below the stack limit.
|
| __ j(below_equal, &stack_limit_hit);
|
| // Check if there is room for the variable number of registers above
|
| @@ -741,13 +741,13 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| __ bind(&stack_ok);
|
|
|
| // Allocate space on stack for registers.
|
| - __ subq(rsp, Immediate(num_registers_ * kPointerSize));
|
| + __ subp(rsp, Immediate(num_registers_ * kPointerSize));
|
| // Load string length.
|
| __ movp(rsi, Operand(rbp, kInputEnd));
|
| // Load input position.
|
| __ movp(rdi, Operand(rbp, kInputStart));
|
| // Set up rdi to be negative offset from string end.
|
| - __ subq(rdi, rsi);
|
| + __ subp(rdi, rsi);
|
| // Set rax to address of char before start of the string
|
| // (effectively string position -1).
|
| __ movp(rbx, Operand(rbp, kStartIndex));
|
| @@ -824,11 +824,11 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| __ movp(rdx, Operand(rbp, kStartIndex));
|
| __ movp(rbx, Operand(rbp, kRegisterOutput));
|
| __ movp(rcx, Operand(rbp, kInputEnd));
|
| - __ subq(rcx, Operand(rbp, kInputStart));
|
| + __ subp(rcx, Operand(rbp, kInputStart));
|
| if (mode_ == UC16) {
|
| __ lea(rcx, Operand(rcx, rdx, times_2, 0));
|
| } else {
|
| - __ addq(rcx, rdx);
|
| + __ addp(rcx, rdx);
|
| }
|
| for (int i = 0; i < num_saved_registers_; i++) {
|
| __ movq(rax, register_location(i));
|
| @@ -836,7 +836,7 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| // Keep capture start in rdx for the zero-length check later.
|
| __ movp(rdx, rax);
|
| }
|
| - __ addq(rax, rcx); // Convert to index from start, not end.
|
| + __ addp(rax, rcx); // Convert to index from start, not end.
|
| if (mode_ == UC16) {
|
| __ sar(rax, Immediate(1)); // Convert byte index to character index.
|
| }
|
| @@ -851,14 +851,14 @@ Handle<HeapObject> RegExpMacroAssemblerX64::GetCode(Handle<String> source) {
|
| // Capture results have been stored, so the number of remaining global
|
| // output registers is reduced by the number of stored captures.
|
| __ movsxlq(rcx, Operand(rbp, kNumOutputRegisters));
|
| - __ subq(rcx, Immediate(num_saved_registers_));
|
| + __ subp(rcx, Immediate(num_saved_registers_));
|
| // Check whether we have enough room for another set of capture results.
|
| __ cmpq(rcx, Immediate(num_saved_registers_));
|
| __ j(less, &exit_label_);
|
|
|
| __ movp(Operand(rbp, kNumOutputRegisters), rcx);
|
| // Advance the location for output.
|
| - __ addq(Operand(rbp, kRegisterOutput),
|
| + __ addp(Operand(rbp, kRegisterOutput),
|
| Immediate(num_saved_registers_ * kIntSize));
|
|
|
| // Prepare rax to initialize registers with its value in the next run.
|
| @@ -1091,7 +1091,7 @@ void RegExpMacroAssemblerX64::ReadCurrentPositionFromRegister(int reg) {
|
|
|
| void RegExpMacroAssemblerX64::ReadStackPointerFromRegister(int reg) {
|
| __ movq(backtrack_stackpointer(), register_location(reg));
|
| - __ addq(backtrack_stackpointer(), Operand(rbp, kStackHighEnd));
|
| + __ addp(backtrack_stackpointer(), Operand(rbp, kStackHighEnd));
|
| }
|
|
|
|
|
| @@ -1142,7 +1142,7 @@ void RegExpMacroAssemblerX64::ClearRegisters(int reg_from, int reg_to) {
|
|
|
| void RegExpMacroAssemblerX64::WriteStackPointerToRegister(int reg) {
|
| __ movp(rax, backtrack_stackpointer());
|
| - __ subq(rax, Operand(rbp, kStackHighEnd));
|
| + __ subp(rax, Operand(rbp, kStackHighEnd));
|
| __ movp(register_location(reg), rax);
|
| }
|
|
|
| @@ -1323,12 +1323,12 @@ void RegExpMacroAssemblerX64::SafeCall(Label* to) {
|
|
|
| void RegExpMacroAssemblerX64::SafeCallTarget(Label* label) {
|
| __ bind(label);
|
| - __ subq(Operand(rsp, 0), code_object_pointer());
|
| + __ subp(Operand(rsp, 0), code_object_pointer());
|
| }
|
|
|
|
|
| void RegExpMacroAssemblerX64::SafeReturn() {
|
| - __ addq(Operand(rsp, 0), code_object_pointer());
|
| + __ addp(Operand(rsp, 0), code_object_pointer());
|
| __ ret(0);
|
| }
|
|
|
| @@ -1336,14 +1336,14 @@ void RegExpMacroAssemblerX64::SafeReturn() {
|
| void RegExpMacroAssemblerX64::Push(Register source) {
|
| ASSERT(!source.is(backtrack_stackpointer()));
|
| // Notice: This updates flags, unlike normal Push.
|
| - __ subq(backtrack_stackpointer(), Immediate(kIntSize));
|
| + __ subp(backtrack_stackpointer(), Immediate(kIntSize));
|
| __ movl(Operand(backtrack_stackpointer(), 0), source);
|
| }
|
|
|
|
|
| void RegExpMacroAssemblerX64::Push(Immediate value) {
|
| // Notice: This updates flags, unlike normal Push.
|
| - __ subq(backtrack_stackpointer(), Immediate(kIntSize));
|
| + __ subp(backtrack_stackpointer(), Immediate(kIntSize));
|
| __ movl(Operand(backtrack_stackpointer(), 0), value);
|
| }
|
|
|
| @@ -1367,7 +1367,7 @@ void RegExpMacroAssemblerX64::FixupCodeRelativePositions() {
|
|
|
|
|
| void RegExpMacroAssemblerX64::Push(Label* backtrack_target) {
|
| - __ subq(backtrack_stackpointer(), Immediate(kIntSize));
|
| + __ subp(backtrack_stackpointer(), Immediate(kIntSize));
|
| __ movl(Operand(backtrack_stackpointer(), 0), backtrack_target);
|
| MarkPositionForCodeRelativeFixup();
|
| }
|
| @@ -1377,12 +1377,12 @@ void RegExpMacroAssemblerX64::Pop(Register target) {
|
| ASSERT(!target.is(backtrack_stackpointer()));
|
| __ movsxlq(target, Operand(backtrack_stackpointer(), 0));
|
| // Notice: This updates flags, unlike normal Pop.
|
| - __ addq(backtrack_stackpointer(), Immediate(kIntSize));
|
| + __ addp(backtrack_stackpointer(), Immediate(kIntSize));
|
| }
|
|
|
|
|
| void RegExpMacroAssemblerX64::Drop() {
|
| - __ addq(backtrack_stackpointer(), Immediate(kIntSize));
|
| + __ addp(backtrack_stackpointer(), Immediate(kIntSize));
|
| }
|
|
|
|
|
|
|