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

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

Issue 119353: Add instanceof stub for ARM. (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
« no previous file with comments | « src/arm/ic-arm.cc ('k') | src/arm/macro-assembler-arm.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 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 // on access to global objects across environments. The holder register 180 // on access to global objects across environments. The holder register
181 // is left untouched, whereas both scratch registers are clobbered. 181 // is left untouched, whereas both scratch registers are clobbered.
182 void CheckAccessGlobalProxy(Register holder_reg, 182 void CheckAccessGlobalProxy(Register holder_reg,
183 Register scratch, 183 Register scratch,
184 Label* miss); 184 Label* miss);
185 185
186 186
187 // --------------------------------------------------------------------------- 187 // ---------------------------------------------------------------------------
188 // Support functions. 188 // Support functions.
189 189
190 // Try to get function prototype of a function and puts the value in
191 // the result register. Checks that the function really is a
192 // function and jumps to the miss label if the fast checks fail. The
193 // function register will be untouched; the other registers may be
194 // clobbered.
195 void TryGetFunctionPrototype(Register function,
196 Register result,
197 Register scratch,
198 Label* miss);
199
200 // Compare object type for heap object. heap_object contains a non-Smi
201 // whose object type should be compared with the given type. This both
202 // sets the flags and leaves the object type in the type_reg register.
203 // It leaves the map in the map register (unless the type_reg and map register
204 // are the same register). It leaves the heap object in the heap_object
205 // register unless the heap_object register is the same register as one of the
206 // other // registers.
207 void CompareObjectType(Register heap_object,
208 Register map,
209 Register type_reg,
210 InstanceType type);
211
212 inline void BranchOnSmi(Register value, Label* smi_label) {
213 tst(value, Operand(kSmiTagMask));
214 b(eq, smi_label);
215 }
216
217 inline void BranchOnNotSmi(Register value, Label* not_smi_label) {
218 tst(value, Operand(kSmiTagMask));
219 b(ne, not_smi_label);
220 }
221
190 // Generates code for reporting that an illegal operation has 222 // Generates code for reporting that an illegal operation has
191 // occurred. 223 // occurred.
192 void IllegalOperation(int num_arguments); 224 void IllegalOperation(int num_arguments);
193 225
194 226
195 // --------------------------------------------------------------------------- 227 // ---------------------------------------------------------------------------
196 // Runtime calls 228 // Runtime calls
197 229
198 // Call a code stub. 230 // Call a code stub.
199 void CallStub(CodeStub* stub); 231 void CallStub(CodeStub* stub);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 337 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
306 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 338 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
307 #else 339 #else
308 #define ACCESS_MASM(masm) masm-> 340 #define ACCESS_MASM(masm) masm->
309 #endif 341 #endif
310 342
311 343
312 } } // namespace v8::internal 344 } } // namespace v8::internal
313 345
314 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 346 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/ic-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698