diff options
Diffstat (limited to 'lib/Target/Sparc/Sparc.h')
-rw-r--r-- | lib/Target/Sparc/Sparc.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/Target/Sparc/Sparc.h b/lib/Target/Sparc/Sparc.h index f2d632e54c..f44b60420d 100644 --- a/lib/Target/Sparc/Sparc.h +++ b/lib/Target/Sparc/Sparc.h @@ -105,5 +105,22 @@ namespace llvm { } llvm_unreachable("Invalid cond code"); } + + inline static unsigned HI22(int64_t imm) { + return (unsigned)((imm >> 10) & ((1 << 22)-1)); + } + + inline static unsigned LO10(int64_t imm) { + return (unsigned)(imm & 0x3FF); + } + + inline static unsigned HIX22(int64_t imm) { + return HI22(~imm); + } + + inline static unsigned LOX10(int64_t imm) { + return ~LO10(~imm); + } + } // end namespace llvm #endif |