Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: src/x64/macro-assembler-x64.cc

Issue 146029: x64 code generation for construct calls, declaring global variables... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 movq(rdi, rax); // Backup rax before we use it. 714 movq(rdi, rax); // Backup rax before we use it.
715 715
716 movq(rax, rbp); 716 movq(rax, rbp);
717 store_rax(c_entry_fp_address); 717 store_rax(c_entry_fp_address);
718 movq(rax, rsi); 718 movq(rax, rsi);
719 store_rax(context_address); 719 store_rax(context_address);
720 720
721 // Setup argv in callee-saved register r15. It is reused in LeaveExitFrame, 721 // Setup argv in callee-saved register r15. It is reused in LeaveExitFrame,
722 // so it must be retained across the C-call. 722 // so it must be retained across the C-call.
723 int offset = StandardFrameConstants::kCallerSPOffset - kPointerSize; 723 int offset = StandardFrameConstants::kCallerSPOffset - kPointerSize;
724 lea(r15, Operand(rbp, rdi, kTimesPointerSize, offset)); 724 lea(r15, Operand(rbp, rdi, times_pointer_size, offset));
725 725
726 #ifdef ENABLE_DEBUGGER_SUPPORT 726 #ifdef ENABLE_DEBUGGER_SUPPORT
727 // Save the state of all registers to the stack from the memory 727 // Save the state of all registers to the stack from the memory
728 // location. This is needed to allow nested break points. 728 // location. This is needed to allow nested break points.
729 if (type == StackFrame::EXIT_DEBUG) { 729 if (type == StackFrame::EXIT_DEBUG) {
730 // TODO(1243899): This should be symmetric to 730 // TODO(1243899): This should be symmetric to
731 // CopyRegistersFromStackToMemory() but it isn't! esp is assumed 731 // CopyRegistersFromStackToMemory() but it isn't! esp is assumed
732 // correct here, but computed for the other call. Very error 732 // correct here, but computed for the other call. Very error
733 // prone! FIX THIS. Actually there are deeper problems with 733 // prone! FIX THIS. Actually there are deeper problems with
734 // register saving than this asymmetry (see the bug report 734 // register saving than this asymmetry (see the bug report
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 push(rcx); 788 push(rcx);
789 789
790 // Clear the top frame. 790 // Clear the top frame.
791 ExternalReference c_entry_fp_address(Top::k_c_entry_fp_address); 791 ExternalReference c_entry_fp_address(Top::k_c_entry_fp_address);
792 movq(kScratchRegister, c_entry_fp_address); 792 movq(kScratchRegister, c_entry_fp_address);
793 movq(Operand(kScratchRegister, 0), Immediate(0)); 793 movq(Operand(kScratchRegister, 0), Immediate(0));
794 } 794 }
795 795
796 796
797 } } // namespace v8::internal 797 } } // namespace v8::internal
OLDNEW
« src/x64/codegen-x64.cc ('K') | « src/x64/ic-x64.cc ('k') | src/x64/virtual-frame-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698