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

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

Issue 1934004: Correct bug with left shift on X64 platform from change 4571 (http://code.goo... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 7 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/codegen-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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 void SmiNot(Register dst, Register src); 367 void SmiNot(Register dst, Register src);
368 void SmiAnd(Register dst, Register src1, Register src2); 368 void SmiAnd(Register dst, Register src1, Register src2);
369 void SmiOr(Register dst, Register src1, Register src2); 369 void SmiOr(Register dst, Register src1, Register src2);
370 void SmiXor(Register dst, Register src1, Register src2); 370 void SmiXor(Register dst, Register src1, Register src2);
371 void SmiAndConstant(Register dst, Register src1, Smi* constant); 371 void SmiAndConstant(Register dst, Register src1, Smi* constant);
372 void SmiOrConstant(Register dst, Register src1, Smi* constant); 372 void SmiOrConstant(Register dst, Register src1, Smi* constant);
373 void SmiXorConstant(Register dst, Register src1, Smi* constant); 373 void SmiXorConstant(Register dst, Register src1, Smi* constant);
374 374
375 void SmiShiftLeftConstant(Register dst, 375 void SmiShiftLeftConstant(Register dst,
376 Register src, 376 Register src,
377 int shift_value, 377 int shift_value);
378 Label* on_not_smi_result);
379 void SmiShiftLogicalRightConstant(Register dst, 378 void SmiShiftLogicalRightConstant(Register dst,
380 Register src, 379 Register src,
381 int shift_value, 380 int shift_value,
382 Label* on_not_smi_result); 381 Label* on_not_smi_result);
383 void SmiShiftArithmeticRightConstant(Register dst, 382 void SmiShiftArithmeticRightConstant(Register dst,
384 Register src, 383 Register src,
385 int shift_value); 384 int shift_value);
386 385
387 // Shifts a smi value to the left, and returns the result if that is a smi. 386 // Shifts a smi value to the left, and returns the result if that is a smi.
388 // Uses and clobbers rcx, so dst may not be rcx. 387 // Uses and clobbers rcx, so dst may not be rcx.
389 void SmiShiftLeft(Register dst, 388 void SmiShiftLeft(Register dst,
390 Register src1, 389 Register src1,
391 Register src2, 390 Register src2);
392 Label* on_not_smi_result);
393 // Shifts a smi value to the right, shifting in zero bits at the top, and 391 // Shifts a smi value to the right, shifting in zero bits at the top, and
394 // returns the unsigned intepretation of the result if that is a smi. 392 // returns the unsigned intepretation of the result if that is a smi.
395 // Uses and clobbers rcx, so dst may not be rcx. 393 // Uses and clobbers rcx, so dst may not be rcx.
396 void SmiShiftLogicalRight(Register dst, 394 void SmiShiftLogicalRight(Register dst,
397 Register src1, 395 Register src1,
398 Register src2, 396 Register src2,
399 Label* on_not_smi_result); 397 Label* on_not_smi_result);
400 // Shifts a smi value to the right, sign extending the top, and 398 // Shifts a smi value to the right, sign extending the top, and
401 // returns the signed intepretation of the result. That will always 399 // returns the signed intepretation of the result. That will always
402 // be a valid smi value, since it's numerically smaller than the 400 // be a valid smi value, since it's numerically smaller than the
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 } \ 860 } \
863 masm-> 861 masm->
864 #else 862 #else
865 #define ACCESS_MASM(masm) masm-> 863 #define ACCESS_MASM(masm) masm->
866 #endif 864 #endif
867 865
868 866
869 } } // namespace v8::internal 867 } } // namespace v8::internal
870 868
871 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 869 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/x64/codegen-x64.cc ('k') | src/x64/macro-assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698