| Index: src/x64/regexp-macro-assembler-x64.h
|
| diff --git a/src/x64/regexp-macro-assembler-x64.h b/src/x64/regexp-macro-assembler-x64.h
|
| index ab9647704b32b92f6e09daca7892af249c4e5bb2..3e6720dc0dae1dabccac2c3330ef7a7a289fd202 100644
|
| --- a/src/x64/regexp-macro-assembler-x64.h
|
| +++ b/src/x64/regexp-macro-assembler-x64.h
|
| @@ -129,16 +129,18 @@ class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler {
|
| static const int kReturn_eip = kFramePointer + kPointerSize;
|
| static const int kFrameAlign = kReturn_eip + kPointerSize;
|
|
|
| -#ifdef __MSVC__
|
| +#ifdef _WIN64
|
| // Parameters (first four passed as registers, but with room on stack).
|
| // In Microsoft 64-bit Calling Convention, there is room on the callers
|
| // stack (before the return address) to spill parameter registers. We
|
| // use this space to store the register passed parameters.
|
| static const int kInputString = kFrameAlign;
|
| + // StartIndex is passed as 32 bit int.
|
| static const int kStartIndex = kInputString + kPointerSize;
|
| static const int kInputStart = kStartIndex + kPointerSize;
|
| static const int kInputEnd = kInputStart + kPointerSize;
|
| static const int kRegisterOutput = kInputEnd + kPointerSize;
|
| + // AtStart is passed as 32 bit int (values 0 or 1).
|
| static const int kAtStart = kRegisterOutput + kPointerSize;
|
| static const int kStackHighEnd = kAtStart + kPointerSize;
|
| #else
|
| @@ -154,7 +156,7 @@ class RegExpMacroAssemblerX64: public NativeRegExpMacroAssembler {
|
| static const int kStackHighEnd = kFrameAlign;
|
| #endif
|
|
|
| -#ifdef __MSVC__
|
| +#ifdef _WIN64
|
| // Microsoft calling convention has three callee-saved registers
|
| // (that we are using). We push these after the frame pointer.
|
| static const int kBackup_rsi = kFramePointer - kPointerSize;
|
|
|