Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #if V8_TARGET_ARCH_MIPS64 | 5 #if V8_TARGET_ARCH_MIPS64 |
| 6 | 6 |
| 7 #include "src/regexp/mips64/regexp-macro-assembler-mips64.h" | 7 #include "src/regexp/mips64/regexp-macro-assembler-mips64.h" |
| 8 | 8 |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/log.h" | 10 #include "src/log.h" |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 664 // Save callee-save registers. | 664 // Save callee-save registers. |
| 665 // Start new stack frame. | 665 // Start new stack frame. |
| 666 // Store link register in existing stack-cell. | 666 // Store link register in existing stack-cell. |
| 667 // Order here should correspond to order of offset constants in header file. | 667 // Order here should correspond to order of offset constants in header file. |
| 668 // TODO(plind): we save s0..s7, but ONLY use s3 here - use the regs | 668 // TODO(plind): we save s0..s7, but ONLY use s3 here - use the regs |
| 669 // or dont save. | 669 // or dont save. |
| 670 RegList registers_to_retain = s0.bit() | s1.bit() | s2.bit() | | 670 RegList registers_to_retain = s0.bit() | s1.bit() | s2.bit() | |
| 671 s3.bit() | s4.bit() | s5.bit() | s6.bit() | s7.bit() | fp.bit(); | 671 s3.bit() | s4.bit() | s5.bit() | s6.bit() | s7.bit() | fp.bit(); |
| 672 RegList argument_registers = a0.bit() | a1.bit() | a2.bit() | a3.bit(); | 672 RegList argument_registers = a0.bit() | a1.bit() | a2.bit() | a3.bit(); |
| 673 | 673 |
| 674 if (kMipsAbi == kN64) { | 674 argument_registers |= a4.bit() | a5.bit() | a6.bit() | a7.bit(); |
|
balazs.kilvady
2016/01/28 12:48:22
I think a4-a7 bits could be 'or'-ed to the above l
Ilija.Pavlovic1
2016/01/28 15:07:30
Yes, you are right. I didn't noted that definition
| |
| 675 // TODO(plind): Should probably alias a4-a7, for clarity. | |
| 676 argument_registers |= a4.bit() | a5.bit() | a6.bit() | a7.bit(); | |
| 677 } | |
| 678 | 675 |
| 679 __ MultiPush(argument_registers | registers_to_retain | ra.bit()); | 676 __ MultiPush(argument_registers | registers_to_retain | ra.bit()); |
| 680 // Set frame pointer in space for it if this is not a direct call | 677 // Set frame pointer in space for it if this is not a direct call |
| 681 // from generated code. | 678 // from generated code. |
| 682 // TODO(plind): this 8 is the # of argument regs, should have definition. | 679 // TODO(plind): this 8 is the # of argument regs, should have definition. |
| 683 __ Daddu(frame_pointer(), sp, Operand(8 * kPointerSize)); | 680 __ Daddu(frame_pointer(), sp, Operand(8 * kPointerSize)); |
| 684 __ mov(a0, zero_reg); | 681 __ mov(a0, zero_reg); |
| 685 __ push(a0); // Make room for success counter and initialize it to 0. | 682 __ push(a0); // Make room for success counter and initialize it to 0. |
| 686 __ push(a0); // Make room for "string start - 1" constant. | 683 __ push(a0); // Make room for "string start - 1" constant. |
| 687 | 684 |
| (...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1330 } | 1327 } |
| 1331 | 1328 |
| 1332 #undef __ | 1329 #undef __ |
| 1333 | 1330 |
| 1334 #endif // V8_INTERPRETED_REGEXP | 1331 #endif // V8_INTERPRETED_REGEXP |
| 1335 | 1332 |
| 1336 } // namespace internal | 1333 } // namespace internal |
| 1337 } // namespace v8 | 1334 } // namespace v8 |
| 1338 | 1335 |
| 1339 #endif // V8_TARGET_ARCH_MIPS64 | 1336 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |