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

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

Issue 6682026: Fix SmiCompare on 64 bit to distinguish between comparisons where... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 9 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 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 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 Register src, 271 Register src,
272 int power); 272 int power);
273 273
274 // Divide a positive smi's integer value by a power of two. 274 // Divide a positive smi's integer value by a power of two.
275 // Provides result as 32-bit integer value. 275 // Provides result as 32-bit integer value.
276 void PositiveSmiDivPowerOfTwoToInteger32(Register dst, 276 void PositiveSmiDivPowerOfTwoToInteger32(Register dst,
277 Register src, 277 Register src,
278 int power); 278 int power);
279 279
280 280
281 // Simple comparison of smis. 281 // Simple comparison of Smis.
Lasse Reichstein 2011/03/14 08:51:01 Actually, I believe we try to write "smi" as lower
Erik Corry 2011/03/14 16:26:45 Done.
282 void SmiCompare(Register dst, Register src);
283 void SmiCompare(Register dst, Smi* src); 282 void SmiCompare(Register dst, Smi* src);
284 void SmiCompare(Register dst, const Operand& src); 283 void SmiCompare(Register dst, const Operand& src);
285 void SmiCompare(const Operand& dst, Register src); 284 void SmiCompare(const Operand& dst, Register src);
286 void SmiCompare(const Operand& dst, Smi* src); 285 void SmiCompare(const Operand& dst, Smi* src);
286 // Unlike the above these do not assume that the operand or reg contain a Smi.
287 void SmiCompareWithObject(Register dst, Smi* src);
288 void SmiCompareWithObject(const Operand& dst, Smi* src);
Lasse Reichstein 2011/03/14 08:51:01 Rename them to Cmp and group them with the Cmp fun
Erik Corry 2011/03/14 16:26:45 Done.
287 // Compare the int32 in src register to the value of the smi stored at dst. 289 // Compare the int32 in src register to the value of the smi stored at dst.
288 void SmiCompareInteger32(const Operand& dst, Register src); 290 void SmiCompareInteger32(const Operand& dst, Register src);
289 // Sets sign and zero flags depending on value of smi in register. 291 // Sets sign and zero flags depending on value of smi in register.
290 void SmiTest(Register src); 292 void SmiTest(Register src);
291 293
292 // Functions performing a check on a known or potential smi. Returns 294 // Functions performing a check on a known or potential smi. Returns
293 // a condition that is satisfied if the check is successful. 295 // a condition that is satisfied if the check is successful.
294 296
295 // Is the value a tagged smi. 297 // Is the value a tagged smi.
296 Condition CheckSmi(Register src); 298 Condition CheckSmi(Register src);
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 void FCmp(); 697 void FCmp();
696 698
697 // Abort execution if argument is not a number. Used in debug code. 699 // Abort execution if argument is not a number. Used in debug code.
698 void AbortIfNotNumber(Register object); 700 void AbortIfNotNumber(Register object);
699 701
700 // Abort execution if argument is a smi. Used in debug code. 702 // Abort execution if argument is a smi. Used in debug code.
701 void AbortIfSmi(Register object); 703 void AbortIfSmi(Register object);
702 704
703 // Abort execution if argument is not a smi. Used in debug code. 705 // Abort execution if argument is not a smi. Used in debug code.
704 void AbortIfNotSmi(Register object); 706 void AbortIfNotSmi(Register object);
707 void AbortIfNotSmi(const Operand& object);
705 708
706 // Abort execution if argument is a string. Used in debug code. 709 // Abort execution if argument is a string. Used in debug code.
707 void AbortIfNotString(Register object); 710 void AbortIfNotString(Register object);
708 711
709 // Abort execution if argument is not the root value with the given index. 712 // Abort execution if argument is not the root value with the given index.
710 void AbortIfNotRootValue(Register src, 713 void AbortIfNotRootValue(Register src,
711 Heap::RootListIndex root_value_index, 714 Heap::RootListIndex root_value_index,
712 const char* message); 715 const char* message);
713 716
714 // --------------------------------------------------------------------------- 717 // ---------------------------------------------------------------------------
(...skipping 1168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1883 Jump(adaptor, RelocInfo::CODE_TARGET); 1886 Jump(adaptor, RelocInfo::CODE_TARGET);
1884 } 1887 }
1885 bind(&invoke); 1888 bind(&invoke);
1886 } 1889 }
1887 } 1890 }
1888 1891
1889 1892
1890 } } // namespace v8::internal 1893 } } // namespace v8::internal
1891 1894
1892 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 1895 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698