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

Side by Side Diff: src/ia32/ic-ia32.cc

Issue 159402: Make X64 implementation update Store ic stubs. Remove comment that talks abo... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 5 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
« no previous file with comments | « no previous file | src/ic.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 742
743 743
744 void LoadIC::Generate(MacroAssembler* masm, const ExternalReference& f) { 744 void LoadIC::Generate(MacroAssembler* masm, const ExternalReference& f) {
745 // ----------- S t a t e ------------- 745 // ----------- S t a t e -------------
746 // -- ecx : name 746 // -- ecx : name
747 // -- esp[0] : return address 747 // -- esp[0] : return address
748 // -- esp[4] : receiver 748 // -- esp[4] : receiver
749 // ----------------------------------- 749 // -----------------------------------
750 750
751 __ mov(eax, Operand(esp, kPointerSize)); 751 __ mov(eax, Operand(esp, kPointerSize));
752
753 // Move the return address below the arguments.
754 __ pop(ebx); 752 __ pop(ebx);
Lasse Reichstein 2009/07/27 10:32:11 Perhaps add comment to this line as well? // retur
755 __ push(eax); 753 __ push(eax); // receiver
756 __ push(ecx); 754 __ push(ecx); // name
757 __ push(ebx); 755 __ push(ebx); // return address
758 756
759 // Perform tail call to the entry. 757 // Perform tail call to the entry.
760 __ TailCallRuntime(f, 2); 758 __ TailCallRuntime(f, 2);
761 } 759 }
762 760
763 761
764 // One byte opcode for test eax,0xXXXXXXXX. 762 // One byte opcode for test eax,0xXXXXXXXX.
765 static const byte kTestEaxByte = 0xA9; 763 static const byte kTestEaxByte = 0xA9;
766 764
767 765
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 868
871 void KeyedLoadIC::Generate(MacroAssembler* masm, const ExternalReference& f) { 869 void KeyedLoadIC::Generate(MacroAssembler* masm, const ExternalReference& f) {
872 // ----------- S t a t e ------------- 870 // ----------- S t a t e -------------
873 // -- esp[0] : return address 871 // -- esp[0] : return address
874 // -- esp[4] : name 872 // -- esp[4] : name
875 // -- esp[8] : receiver 873 // -- esp[8] : receiver
876 // ----------------------------------- 874 // -----------------------------------
877 875
878 __ mov(eax, Operand(esp, kPointerSize)); 876 __ mov(eax, Operand(esp, kPointerSize));
879 __ mov(ecx, Operand(esp, 2 * kPointerSize)); 877 __ mov(ecx, Operand(esp, 2 * kPointerSize));
880
881 // Move the return address below the arguments.
882 __ pop(ebx); 878 __ pop(ebx);
883 __ push(ecx); 879 __ push(ecx); // receiver
884 __ push(eax); 880 __ push(eax); // name
885 __ push(ebx); 881 __ push(ebx); // return address
886 882
887 // Perform tail call to the entry. 883 // Perform tail call to the entry.
888 __ TailCallRuntime(f, 2); 884 __ TailCallRuntime(f, 2);
889 } 885 }
890 886
891 887
892 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { 888 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
893 // ----------- S t a t e ------------- 889 // ----------- S t a t e -------------
894 // -- eax : value 890 // -- eax : value
895 // -- ecx : name 891 // -- ecx : name
(...skipping 14 matching lines...) Expand all
910 906
911 907
912 void StoreIC::GenerateExtendStorage(MacroAssembler* masm) { 908 void StoreIC::GenerateExtendStorage(MacroAssembler* masm) {
913 // ----------- S t a t e ------------- 909 // ----------- S t a t e -------------
914 // -- eax : value 910 // -- eax : value
915 // -- ecx : transition map 911 // -- ecx : transition map
916 // -- esp[0] : return address 912 // -- esp[0] : return address
917 // -- esp[4] : receiver 913 // -- esp[4] : receiver
918 // ----------------------------------- 914 // -----------------------------------
919 915
920 // Move the return address below the arguments.
921 __ pop(ebx); 916 __ pop(ebx);
922 __ push(Operand(esp, 0)); 917 __ push(Operand(esp, 0)); // receiver
923 __ push(ecx); 918 __ push(ecx); // transition map
924 __ push(eax); 919 __ push(eax); // value
925 __ push(ebx); 920 __ push(ebx); // return address
921
926 // Perform tail call to the entry. 922 // Perform tail call to the entry.
927 __ TailCallRuntime( 923 __ TailCallRuntime(
928 ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3); 924 ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3);
929 } 925 }
930 926
931 927
932 void StoreIC::Generate(MacroAssembler* masm, const ExternalReference& f) { 928 void StoreIC::Generate(MacroAssembler* masm, const ExternalReference& f) {
933 // ----------- S t a t e ------------- 929 // ----------- S t a t e -------------
934 // -- eax : value 930 // -- eax : value
935 // -- ecx : name 931 // -- ecx : name
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 986
991 // Do tail-call to runtime routine. 987 // Do tail-call to runtime routine.
992 __ TailCallRuntime( 988 __ TailCallRuntime(
993 ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3); 989 ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3);
994 } 990 }
995 991
996 #undef __ 992 #undef __
997 993
998 994
999 } } // namespace v8::internal 995 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698