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

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

Issue 22290005: Move ToI conversions to the MacroAssembler (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 4 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 // FCmp is similar to integer cmp, but requires unsigned 462 // FCmp is similar to integer cmp, but requires unsigned
463 // jcc instructions (je, ja, jae, jb, jbe, je, and jz). 463 // jcc instructions (je, ja, jae, jb, jbe, je, and jz).
464 void FCmp(); 464 void FCmp();
465 465
466 void ClampUint8(Register reg); 466 void ClampUint8(Register reg);
467 467
468 void ClampDoubleToUint8(XMMRegister input_reg, 468 void ClampDoubleToUint8(XMMRegister input_reg,
469 XMMRegister scratch_reg, 469 XMMRegister scratch_reg,
470 Register result_reg); 470 Register result_reg);
471 471
472 void SlowTruncateToI(Register input_reg, Register result_reg,
473 int index = HeapNumber::kValueOffset - kHeapObjectTag);
474
475 void TruncateHeapNumberToI(Register input_reg, Register result_reg);
476 void TruncateDoubleToI(XMMRegister input_reg, Register result_reg);
477
478 void DoubleToI(XMMRegister input_reg, Register result_reg,
479 XMMRegister scratch, bool bailout_on_minus_zero,
480 Label* conversion_failed, Label* done, Label::Distance dst = Label::kFar);
481
482 void TaggedToI(Register input_reg, Register result_reg,
483 Maybe<XMMRegister> temp, bool bailout_on_minus_zero,
484 Label* bailout, Label* done);
485 void TaggedToI(Register input_reg, Register result_reg,
486 XMMRegister temp, bool bailout_on_minus_zero,
487 Label* bailout, Label* done) {
488 TaggedToI(input_reg, result_reg, Maybe<XMMRegister>(true, temp),
489 bailout_on_minus_zero, bailout, done);
490 }
491 void TaggedToI(Register input_reg, Register result_reg,
492 bool bailout_on_minus_zero, Label* bailout, Label* done) {
493 TaggedToI(input_reg, result_reg, Maybe<XMMRegister>(),
494 bailout_on_minus_zero, bailout, done);
495 }
472 496
473 // Smi tagging support. 497 // Smi tagging support.
474 void SmiTag(Register reg) { 498 void SmiTag(Register reg) {
475 STATIC_ASSERT(kSmiTag == 0); 499 STATIC_ASSERT(kSmiTag == 0);
476 STATIC_ASSERT(kSmiTagSize == 1); 500 STATIC_ASSERT(kSmiTagSize == 1);
477 add(reg, reg); 501 add(reg, reg);
478 } 502 }
479 void SmiUntag(Register reg) { 503 void SmiUntag(Register reg) {
480 sar(reg, kSmiTagSize); 504 sar(reg, kSmiTagSize);
481 } 505 }
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 } \ 1079 } \
1056 masm-> 1080 masm->
1057 #else 1081 #else
1058 #define ACCESS_MASM(masm) masm-> 1082 #define ACCESS_MASM(masm) masm->
1059 #endif 1083 #endif
1060 1084
1061 1085
1062 } } // namespace v8::internal 1086 } } // namespace v8::internal
1063 1087
1064 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 1088 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698