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

Side by Side Diff: src/x64/builtins-x64.cc

Issue 201042: Win64 - Allow returning two values from a runtime function. (Closed)
Patch Set: Fixed typo. Created 11 years, 3 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
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 26 matching lines...) Expand all
37 void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) { 37 void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
38 // TODO(428): Don't pass the function in a static variable. 38 // TODO(428): Don't pass the function in a static variable.
39 ExternalReference passed = ExternalReference::builtin_passed_function(); 39 ExternalReference passed = ExternalReference::builtin_passed_function();
40 __ movq(kScratchRegister, passed.address(), RelocInfo::EXTERNAL_REFERENCE); 40 __ movq(kScratchRegister, passed.address(), RelocInfo::EXTERNAL_REFERENCE);
41 __ movq(Operand(kScratchRegister, 0), rdi); 41 __ movq(Operand(kScratchRegister, 0), rdi);
42 42
43 // The actual argument count has already been loaded into register 43 // The actual argument count has already been loaded into register
44 // rax, but JumpToBuiltin expects rax to contain the number of 44 // rax, but JumpToBuiltin expects rax to contain the number of
45 // arguments including the receiver. 45 // arguments including the receiver.
46 __ incq(rax); 46 __ incq(rax);
47 __ JumpToBuiltin(ExternalReference(id)); 47 __ JumpToBuiltin(ExternalReference(id), 1);
48 } 48 }
49 49
50 50
51 static void EnterArgumentsAdaptorFrame(MacroAssembler* masm) { 51 static void EnterArgumentsAdaptorFrame(MacroAssembler* masm) {
52 __ push(rbp); 52 __ push(rbp);
53 __ movq(rbp, rsp); 53 __ movq(rbp, rsp);
54 54
55 // Store the arguments adaptor context sentinel. 55 // Store the arguments adaptor context sentinel.
56 __ push(Immediate(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); 56 __ push(Immediate(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
57 57
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) { 847 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
848 Generate_JSEntryTrampolineHelper(masm, false); 848 Generate_JSEntryTrampolineHelper(masm, false);
849 } 849 }
850 850
851 851
852 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) { 852 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
853 Generate_JSEntryTrampolineHelper(masm, true); 853 Generate_JSEntryTrampolineHelper(masm, true);
854 } 854 }
855 855
856 } } // namespace v8::internal 856 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698