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

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

Issue 993002: Port of optimized ICs for external and pixel arrays from ia32 to ARM. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 9 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 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 Register length, 232 Register length,
233 Register scratch1, 233 Register scratch1,
234 Register scratch2, 234 Register scratch2,
235 Label* gc_required); 235 Label* gc_required);
236 void AllocateAsciiConsString(Register result, 236 void AllocateAsciiConsString(Register result,
237 Register length, 237 Register length,
238 Register scratch1, 238 Register scratch1,
239 Register scratch2, 239 Register scratch2,
240 Label* gc_required); 240 Label* gc_required);
241 241
242 // Allocates a heap number or jumps to the need_gc label if the young space
243 // is full and a scavenge is needed.
244 void AllocateHeapNumber(Register result,
245 Register scratch1,
246 Register scratch2,
247 Label* gc_required);
242 248
243 // --------------------------------------------------------------------------- 249 // ---------------------------------------------------------------------------
244 // Support functions. 250 // Support functions.
245 251
246 // Try to get function prototype of a function and puts the value in 252 // Try to get function prototype of a function and puts the value in
247 // the result register. Checks that the function really is a 253 // the result register. Checks that the function really is a
248 // function and jumps to the miss label if the fast checks fail. The 254 // function and jumps to the miss label if the fast checks fail. The
249 // function register will be untouched; the other registers may be 255 // function register will be untouched; the other registers may be
250 // clobbered. 256 // clobbered.
251 void TryGetFunctionPrototype(Register function, 257 void TryGetFunctionPrototype(Register function,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 void IllegalOperation(int num_arguments); 318 void IllegalOperation(int num_arguments);
313 319
314 // Get the number of least significant bits from a register 320 // Get the number of least significant bits from a register
315 void GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits); 321 void GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits);
316 322
317 // Uses VFP instructions to Convert a Smi to a double. 323 // Uses VFP instructions to Convert a Smi to a double.
318 void IntegerToDoubleConversionWithVFP3(Register inReg, 324 void IntegerToDoubleConversionWithVFP3(Register inReg,
319 Register outHighReg, 325 Register outHighReg,
320 Register outLowReg); 326 Register outLowReg);
321 327
328 // Count leading zeros in a 32 bit word. On ARM5 and later it uses the clz
329 // instruction. On pre-ARM5 hardware this routine gives the wrong answer
330 // for 0 (31 instead of 32).
331 void CountLeadingZeros(Register source,
332 Register scratch,
333 Register zeros);
322 334
323 // --------------------------------------------------------------------------- 335 // ---------------------------------------------------------------------------
324 // Runtime calls 336 // Runtime calls
325 337
326 // Call a code stub. 338 // Call a code stub.
327 void CallStub(CodeStub* stub, Condition cond = al); 339 void CallStub(CodeStub* stub, Condition cond = al);
328 340
329 // Call a code stub. 341 // Call a code stub.
330 void TailCallStub(CodeStub* stub, Condition cond = al); 342 void TailCallStub(CodeStub* stub, Condition cond = al);
331 343
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 514 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
503 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 515 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
504 #else 516 #else
505 #define ACCESS_MASM(masm) masm-> 517 #define ACCESS_MASM(masm) masm->
506 #endif 518 #endif
507 519
508 520
509 } } // namespace v8::internal 521 } } // namespace v8::internal
510 522
511 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 523 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« src/arm/ic-arm.cc ('K') | « 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