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

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

Issue 7901016: Basic support for tracking smi-only arrays on ia32. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: deactivate by default Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 218
219 // Compare instance type for map. 219 // Compare instance type for map.
220 void CmpInstanceType(Register map, InstanceType type); 220 void CmpInstanceType(Register map, InstanceType type);
221 221
222 // Check if a map for a JSObject indicates that the object has fast elements. 222 // Check if a map for a JSObject indicates that the object has fast elements.
223 // Jump to the specified label if it does not. 223 // Jump to the specified label if it does not.
224 void CheckFastElements(Register map, 224 void CheckFastElements(Register map,
225 Label* fail, 225 Label* fail,
226 Label::Distance distance = Label::kFar); 226 Label::Distance distance = Label::kFar);
227 227
228 // Check if a map for a JSObject indicates that the object can have both smi
229 // and HeapObject elements. Jump to the specified label if it does not.
230 void CheckFastObjectElements(Register map,
231 Label* fail,
232 Label::Distance distance = Label::kFar);
233
234 // Check if a map for a JSObject indicates that the object has fast smi only
235 // elements. Jump to the specified label if it does not.
236 void CheckFastSmiOnlyElements(Register map,
237 Label* fail,
238 Label::Distance distance = Label::kFar);
239
228 // Check if the map of an object is equal to a specified map and branch to 240 // Check if the map of an object is equal to a specified map and branch to
229 // label if not. Skip the smi check if not required (object is known to be a 241 // label if not. Skip the smi check if not required (object is known to be a
230 // heap object) 242 // heap object)
231 void CheckMap(Register obj, 243 void CheckMap(Register obj,
232 Handle<Map> map, 244 Handle<Map> map,
233 Label* fail, 245 Label* fail,
234 SmiCheckType smi_check_type); 246 SmiCheckType smi_check_type);
235 247
236 // Check if the map of an object is equal to a specified map and branch to a 248 // Check if the map of an object is equal to a specified map and branch to a
237 // specified target if equal. Skip the smi check if not required (object is 249 // specified target if equal. Skip the smi check if not required (object is
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 } \ 822 } \
811 masm-> 823 masm->
812 #else 824 #else
813 #define ACCESS_MASM(masm) masm-> 825 #define ACCESS_MASM(masm) masm->
814 #endif 826 #endif
815 827
816 828
817 } } // namespace v8::internal 829 } } // namespace v8::internal
818 830
819 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 831 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698