summaryrefslogtreecommitdiff
path: root/vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
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.go126
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)
-}