diff options
Diffstat (limited to 'vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go')
-rw-r--r-- | vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go b/vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go deleted file mode 100644 index 764fc5bc6..000000000 --- a/vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package s390x - -import ( - "fmt" -) - -// CCMask represents a 4-bit condition code mask. Bits that -// are not part of the mask should be 0. -// -// Condition code masks represent the 4 possible values of -// the 2-bit condition code as individual bits. Since IBM Z -// is a big-endian platform bits are numbered from left to -// right. The lowest value, 0, is represented by 8 (0b1000) -// and the highest value, 3, is represented by 1 (0b0001). -// -// Note that condition code values have different semantics -// depending on the instruction that set the condition code. -// The names given here assume that the condition code was -// set by an integer or floating point comparison. Other -// instructions may use these same codes to indicate -// different results such as a carry or overflow. -type CCMask uint8 - -const ( - Never CCMask = 0 // no-op - - // 1-bit masks - Equal CCMask = 1 << 3 - Less CCMask = 1 << 2 - Greater CCMask = 1 << 1 - Unordered CCMask = 1 << 0 - - // 2-bit masks - EqualOrUnordered CCMask = Equal | Unordered // not less and not greater - LessOrEqual CCMask = Less | Equal // ordered and not greater - LessOrGreater CCMask = Less | Greater // ordered and not equal - LessOrUnordered CCMask = Less | Unordered // not greater and not equal - GreaterOrEqual CCMask = Greater | Equal // ordered and not less - GreaterOrUnordered CCMask = Greater | Unordered // not less and not equal - - // 3-bit masks - NotEqual CCMask = Always ^ Equal - NotLess CCMask = Always ^ Less - NotGreater CCMask = Always ^ Greater - NotUnordered CCMask = Always ^ Unordered - - // 4-bit mask - Always CCMask = Equal | Less | Greater | Unordered - - // useful aliases - Carry CCMask = GreaterOrUnordered - NoCarry CCMask = LessOrEqual - Borrow CCMask = NoCarry - NoBorrow CCMask = Carry -) - -// Inverse returns the complement of the condition code mask. -func (c CCMask) Inverse() CCMask { - return c ^ Always -} - -// ReverseComparison swaps the bits at 0b0100 and 0b0010 in the mask, -// reversing the behavior of greater than and less than conditions. -func (c CCMask) ReverseComparison() CCMask { - r := c & EqualOrUnordered - if c&Less != 0 { - r |= Greater - } - if c&Greater != 0 { - r |= Less - } - return r -} - -func (c CCMask) String() string { - switch c { - // 0-bit mask - case Never: - return "Never" - - // 1-bit masks - case Equal: - return "Equal" - case Less: - return "Less" - case Greater: - return "Greater" - case Unordered: - return "Unordered" - - // 2-bit masks - case EqualOrUnordered: - return "EqualOrUnordered" - case LessOrEqual: - return "LessOrEqual" - case LessOrGreater: - return "LessOrGreater" - case LessOrUnordered: - return "LessOrUnordered" - case GreaterOrEqual: - return "GreaterOrEqual" - case GreaterOrUnordered: - return "GreaterOrUnordered" - - // 3-bit masks - case NotEqual: - return "NotEqual" - case NotLess: - return "NotLess" - case NotGreater: - return "NotGreater" - case NotUnordered: - return "NotUnordered" - - // 4-bit mask - case Always: - return "Always" - } - - // invalid - return fmt.Sprintf("Invalid (%#x)", c) -} |