Chromium Code Reviews| Index: src/compiler/x64/code-generator-x64.cc |
| diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc |
| index 56260804806fd904a506bf5c776b2ee7005cf200..b444900f581850e2cfecb19d60472602208ad23b 100644 |
| --- a/src/compiler/x64/code-generator-x64.cc |
| +++ b/src/compiler/x64/code-generator-x64.cc |
| @@ -1238,6 +1238,20 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
| } |
| break; |
| } |
| + case kX64PushMultiple: { |
| + Register args_start = i.InputRegister(0); |
| + Register args_end = i.InputRegister(1); |
| + Label loop_header, loop_check; |
| + __ j(always, &loop_check); |
| + __ bind(&loop_header); |
| + __ movp(kScratchRegister, Operand(args_start, 0)); |
|
Benedikt Meurer
2015/09/07 05:14:30
This sequence is probably not x32 safe. You should
|
| + __ pushq(kScratchRegister); |
| + __ subp(args_start, Immediate(kPointerSize)); |
| + __ bind(&loop_check); |
| + __ cmpp(args_start, args_end); |
| + __ j(greater, &loop_header, Label::kNear); |
| + break; |
| + } |
| case kX64StoreWriteBarrier: { |
| Register object = i.InputRegister(0); |
| Register value = i.InputRegister(2); |