| Index: src/x64/macro-assembler-x64.cc
|
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
|
| index f95755db2a7a0fda191551dbd8457d09cc09e289..a690bd525613dde095e6d0c90cf2579b3d2f5963 100644
|
| --- a/src/x64/macro-assembler-x64.cc
|
| +++ b/src/x64/macro-assembler-x64.cc
|
| @@ -885,6 +885,13 @@ Condition MacroAssembler::CheckSmi(Register src) {
|
| }
|
|
|
|
|
| +Condition MacroAssembler::CheckSmi(const Operand& src) {
|
| + ASSERT_EQ(0, kSmiTag);
|
| + testb(src, Immediate(kSmiTagMask));
|
| + return zero;
|
| +}
|
| +
|
| +
|
| Condition MacroAssembler::CheckNonNegativeSmi(Register src) {
|
| ASSERT_EQ(0, kSmiTag);
|
| // Make mask 0x8000000000000001 and test that both bits are zero.
|
| @@ -1386,6 +1393,40 @@ void MacroAssembler::Call(Handle<Code> code_object, RelocInfo::Mode rmode) {
|
| }
|
|
|
|
|
| +void MacroAssembler::Pushad() {
|
| + push(rax);
|
| + push(rcx);
|
| + push(rdx);
|
| + push(rbx);
|
| + // Not pushing rsp or rbp.
|
| + push(rsi);
|
| + push(rdi);
|
| + push(r8);
|
| + push(r9);
|
| + // r10 is kScratchRegister.
|
| + push(r11);
|
| + push(r12);
|
| + // r13 is kRootRegister.
|
| + push(r14);
|
| + // r15 is kSmiConstantRegister
|
| +}
|
| +
|
| +
|
| +void MacroAssembler::Popad() {
|
| + pop(r14);
|
| + pop(r12);
|
| + pop(r11);
|
| + pop(r9);
|
| + pop(r8);
|
| + pop(rdi);
|
| + pop(rsi);
|
| + pop(rbx);
|
| + pop(rdx);
|
| + pop(rcx);
|
| + pop(rax);
|
| +}
|
| +
|
| +
|
| void MacroAssembler::PushTryHandler(CodeLocation try_location,
|
| HandlerType type) {
|
| // Adjust this code if not the case.
|
|
|