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

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

Issue 2804029: Implement IC for storing to dictionary case objects.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 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 | « src/x64/ic-x64.cc ('k') | src/x64/macro-assembler-x64.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 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 Register scratch); 86 Register scratch);
87 87
88 // Check if object is in new space. The condition cc can be equal or 88 // Check if object is in new space. The condition cc can be equal or
89 // not_equal. If it is equal a jump will be done if the object is on new 89 // not_equal. If it is equal a jump will be done if the object is on new
90 // space. The register scratch can be object itself, but it will be clobbered. 90 // space. The register scratch can be object itself, but it will be clobbered.
91 void InNewSpace(Register object, 91 void InNewSpace(Register object,
92 Register scratch, 92 Register scratch,
93 Condition cc, 93 Condition cc,
94 Label* branch); 94 Label* branch);
95 95
96 // For page containing |object| mark region covering [object+offset] dirty. 96 // For page containing |object| mark region covering [object+offset]
97 // object is the object being stored into, value is the object being stored. 97 // dirty. |object| is the object being stored into, |value| is the
98 // If offset is zero, then the scratch register contains the array index into 98 // object being stored. If |offset| is zero, then the |scratch|
99 // the elements array represented as a Smi. 99 // register contains the array index into the elements array
100 // All registers are clobbered by the operation. 100 // represented as a Smi. All registers are clobbered by the
101 // operation. RecordWrite filters out smis so it does not update the
102 // write barrier if the value is a smi.
101 void RecordWrite(Register object, 103 void RecordWrite(Register object,
102 int offset, 104 int offset,
103 Register value, 105 Register value,
104 Register scratch); 106 Register scratch);
105 107
108 // For page containing |object| mark region covering [address]
109 // dirty. |object| is the object being stored into, |value| is the
110 // object being stored. All registers are clobbered by the
111 // operation. RecordWrite filters out smis so it does not update
112 // the write barrier if the value is a smi.
113 void RecordWrite(Register object,
114 Register address,
115 Register value);
116
106 // For page containing |object| mark region covering [object+offset] dirty. 117 // For page containing |object| mark region covering [object+offset] dirty.
107 // The value is known to not be a smi. 118 // The value is known to not be a smi.
108 // object is the object being stored into, value is the object being stored. 119 // object is the object being stored into, value is the object being stored.
109 // If offset is zero, then the scratch register contains the array index into 120 // If offset is zero, then the scratch register contains the array index into
110 // the elements array represented as a Smi. 121 // the elements array represented as a Smi.
111 // All registers are clobbered by the operation. 122 // All registers are clobbered by the operation.
112 void RecordWriteNonSmi(Register object, 123 void RecordWriteNonSmi(Register object,
113 int offset, 124 int offset,
114 Register value, 125 Register value,
115 Register scratch); 126 Register scratch);
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 } \ 907 } \
897 masm-> 908 masm->
898 #else 909 #else
899 #define ACCESS_MASM(masm) masm-> 910 #define ACCESS_MASM(masm) masm->
900 #endif 911 #endif
901 912
902 913
903 } } // namespace v8::internal 914 } } // namespace v8::internal
904 915
905 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 916 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/x64/ic-x64.cc ('k') | src/x64/macro-assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698