Commit 4150b5c6 authored by ahaas's avatar ahaas Committed by Commit bot

[turbofan] Cleanup for Float64Max and Float64Min.

This CL removes the optional operator flag of Float64Max and Float64Min.
Additionally it renames the instruction codes on x64 and ia32 because
the old instructions codes (e.g. SSEFloat64Max) do not match the
generated code anymore.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2237813002
Cr-Commit-Position: refs/heads/master@{#38674}
parent f59c0473
......@@ -104,40 +104,35 @@ class MachineOperatorBuilder final : public ZoneObject {
// for operations that are unsupported by some back-ends.
enum Flag : unsigned {
kNoFlags = 0u,
// Note that Float*Max behaves like `(b < a) ? a : b`, not like Math.max().
// Note that Float*Min behaves like `(a < b) ? a : b`, not like Math.min().
kFloat32Max = 1u << 0,
kFloat32Min = 1u << 1,
kFloat64Max = 1u << 2,
kFloat64Min = 1u << 3,
kFloat32RoundDown = 1u << 4,
kFloat64RoundDown = 1u << 5,
kFloat32RoundUp = 1u << 6,
kFloat64RoundUp = 1u << 7,
kFloat32RoundTruncate = 1u << 8,
kFloat64RoundTruncate = 1u << 9,
kFloat32RoundTiesEven = 1u << 10,
kFloat64RoundTiesEven = 1u << 11,
kFloat64RoundTiesAway = 1u << 12,
kInt32DivIsSafe = 1u << 13,
kUint32DivIsSafe = 1u << 14,
kWord32ShiftIsSafe = 1u << 15,
kWord32Ctz = 1u << 16,
kWord64Ctz = 1u << 17,
kWord32Popcnt = 1u << 18,
kWord64Popcnt = 1u << 19,
kWord32ReverseBits = 1u << 20,
kWord64ReverseBits = 1u << 21,
kWord32ReverseBytes = 1u << 22,
kWord64ReverseBytes = 1u << 23,
kAllOptionalOps = kFloat32Max | kFloat32Min | kFloat64Max | kFloat64Min |
kFloat32RoundDown | kFloat64RoundDown | kFloat32RoundUp |
kFloat64RoundUp | kFloat32RoundTruncate |
kFloat64RoundTruncate | kFloat64RoundTiesAway |
kFloat32RoundTiesEven | kFloat64RoundTiesEven |
kWord32Ctz | kWord64Ctz | kWord32Popcnt | kWord64Popcnt |
kWord32ReverseBits | kWord64ReverseBits |
kWord32ReverseBytes | kWord64ReverseBytes
kFloat32RoundDown = 1u << 2,
kFloat64RoundDown = 1u << 3,
kFloat32RoundUp = 1u << 4,
kFloat64RoundUp = 1u << 5,
kFloat32RoundTruncate = 1u << 6,
kFloat64RoundTruncate = 1u << 7,
kFloat32RoundTiesEven = 1u << 8,
kFloat64RoundTiesEven = 1u << 9,
kFloat64RoundTiesAway = 1u << 10,
kInt32DivIsSafe = 1u << 11,
kUint32DivIsSafe = 1u << 12,
kWord32ShiftIsSafe = 1u << 13,
kWord32Ctz = 1u << 14,
kWord64Ctz = 1u << 15,
kWord32Popcnt = 1u << 16,
kWord64Popcnt = 1u << 17,
kWord32ReverseBits = 1u << 18,
kWord64ReverseBits = 1u << 19,
kWord32ReverseBytes = 1u << 20,
kWord64ReverseBytes = 1u << 21,
kAllOptionalOps =
kFloat32Max | kFloat32Min | kFloat32RoundDown | kFloat64RoundDown |
kFloat32RoundUp | kFloat64RoundUp | kFloat32RoundTruncate |
kFloat64RoundTruncate | kFloat64RoundTiesAway | kFloat32RoundTiesEven |
kFloat64RoundTiesEven | kWord32Ctz | kWord64Ctz | kWord32Popcnt |
kWord64Popcnt | kWord32ReverseBits | kWord64ReverseBits |
kWord32ReverseBytes | kWord64ReverseBytes
};
typedef base::Flags<Flag, unsigned> Flags;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment