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

Unified Diff: src/a64/macro-assembler-a64.h

Issue 200413002: A64: Introduce a DeoptimizeIfMinusZero() helper. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/a64/lithium-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/a64/macro-assembler-a64.h
diff --git a/src/a64/macro-assembler-a64.h b/src/a64/macro-assembler-a64.h
index 651be99a6fb6657ac7f55a2659e71a83cbbea7c1..59412f3a64935dd76b7a246e742376996e1ea2dd 100644
--- a/src/a64/macro-assembler-a64.h
+++ b/src/a64/macro-assembler-a64.h
@@ -900,6 +900,9 @@ class MacroAssembler : public Assembler {
Label* on_not_heap_number,
Register heap_number_map = NoReg);
+ // Sets the vs flag if the input is -0.0.
+ void TestForMinusZero(DoubleRegister input);
+
// Jump to label if the input double register contains -0.0.
void JumpIfMinusZero(DoubleRegister input, Label* on_negative_zero);
@@ -928,10 +931,12 @@ class MacroAssembler : public Assembler {
// Try to convert a double to a signed 32-bit int.
// This succeeds if the result compares equal to the input, so inputs of -0.0
// are converted to 0 and handled as a success.
+ //
+ // On output the Z flag is set if the conversion was successful.
void TryConvertDoubleToInt32(Register as_int,
FPRegister value,
FPRegister scratch_d,
- Label* on_successful_conversion,
+ Label* on_successful_conversion = NULL,
Label* on_failed_conversion = NULL) {
ASSERT(as_int.Is32Bits());
TryConvertDoubleToInt(as_int, value, scratch_d, on_successful_conversion,
@@ -941,10 +946,12 @@ class MacroAssembler : public Assembler {
// Try to convert a double to a signed 64-bit int.
// This succeeds if the result compares equal to the input, so inputs of -0.0
// are converted to 0 and handled as a success.
+ //
+ // On output the Z flag is set if the conversion was successful.
void TryConvertDoubleToInt64(Register as_int,
FPRegister value,
FPRegister scratch_d,
- Label* on_successful_conversion,
+ Label* on_successful_conversion = NULL,
Label* on_failed_conversion = NULL) {
ASSERT(as_int.Is64Bits());
TryConvertDoubleToInt(as_int, value, scratch_d, on_successful_conversion,
@@ -2071,10 +2078,12 @@ class MacroAssembler : public Assembler {
//
// This does not distinguish between +0 and -0, so if this distinction is
// important it must be checked separately.
+ //
+ // On output the Z flag is set if the conversion was successful.
void TryConvertDoubleToInt(Register as_int,
FPRegister value,
FPRegister scratch_d,
- Label* on_successful_conversion,
+ Label* on_successful_conversion = NULL,
Label* on_failed_conversion = NULL);
bool generating_stub_;
« no previous file with comments | « src/a64/lithium-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698