| | |
| | |
| | |
| |
|
| | package s390x |
| |
|
| | import ( |
| | "fmt" |
| | ) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | type CCMask uint8 |
| |
|
| | const ( |
| | Never CCMask = 0 |
| |
|
| | |
| | Equal CCMask = 1 << 3 |
| | Less CCMask = 1 << 2 |
| | Greater CCMask = 1 << 1 |
| | Unordered CCMask = 1 << 0 |
| |
|
| | |
| | EqualOrUnordered CCMask = Equal | Unordered |
| | LessOrEqual CCMask = Less | Equal |
| | LessOrGreater CCMask = Less | Greater |
| | LessOrUnordered CCMask = Less | Unordered |
| | GreaterOrEqual CCMask = Greater | Equal |
| | GreaterOrUnordered CCMask = Greater | Unordered |
| |
|
| | |
| | NotEqual CCMask = Always ^ Equal |
| | NotLess CCMask = Always ^ Less |
| | NotGreater CCMask = Always ^ Greater |
| | NotUnordered CCMask = Always ^ Unordered |
| |
|
| | |
| | Always CCMask = Equal | Less | Greater | Unordered |
| |
|
| | |
| | Carry CCMask = GreaterOrUnordered |
| | NoCarry CCMask = LessOrEqual |
| | Borrow CCMask = NoCarry |
| | NoBorrow CCMask = Carry |
| | ) |
| |
|
| | |
| | func (c CCMask) Inverse() CCMask { |
| | return c ^ Always |
| | } |
| |
|
| | |
| | |
| | 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 { |
| | |
| | case Never: |
| | return "Never" |
| |
|
| | |
| | case Equal: |
| | return "Equal" |
| | case Less: |
| | return "Less" |
| | case Greater: |
| | return "Greater" |
| | case Unordered: |
| | return "Unordered" |
| |
|
| | |
| | case EqualOrUnordered: |
| | return "EqualOrUnordered" |
| | case LessOrEqual: |
| | return "LessOrEqual" |
| | case LessOrGreater: |
| | return "LessOrGreater" |
| | case LessOrUnordered: |
| | return "LessOrUnordered" |
| | case GreaterOrEqual: |
| | return "GreaterOrEqual" |
| | case GreaterOrUnordered: |
| | return "GreaterOrUnordered" |
| |
|
| | |
| | case NotEqual: |
| | return "NotEqual" |
| | case NotLess: |
| | return "NotLess" |
| | case NotGreater: |
| | return "NotGreater" |
| | case NotUnordered: |
| | return "NotUnordered" |
| |
|
| | |
| | case Always: |
| | return "Always" |
| | } |
| |
|
| | |
| | return fmt.Sprintf("Invalid (%#x)", uint8(c)) |
| | } |
| |
|
| | func (CCMask) CanBeAnSSAAux() {} |
| |
|