mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-16 11:24:39 +00:00
ARM64: uncopy/paste helper function
It was doing functional but highly suspect operations on bools due to the more limited shifting operands supported by memory instructions. Should fix some MSVC warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205134 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -149,7 +149,7 @@ static inline ARM64_AM::ExtendType getMemExtendType(unsigned Imm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// getExtendImm - Encode the extend type and amount for a load/store inst:
|
/// getExtendImm - Encode the extend type and amount for a load/store inst:
|
||||||
/// imm: 3-bit extend amount
|
/// doshift: should the offset be scaled by the access size
|
||||||
/// shifter: 000 ==> uxtb
|
/// shifter: 000 ==> uxtb
|
||||||
/// 001 ==> uxth
|
/// 001 ==> uxth
|
||||||
/// 010 ==> uxtw
|
/// 010 ==> uxtw
|
||||||
@@ -159,10 +159,9 @@ static inline ARM64_AM::ExtendType getMemExtendType(unsigned Imm) {
|
|||||||
/// 110 ==> sxtw
|
/// 110 ==> sxtw
|
||||||
/// 111 ==> sxtx
|
/// 111 ==> sxtx
|
||||||
/// {3-1} = shifter
|
/// {3-1} = shifter
|
||||||
/// {0} = imm3
|
/// {0} = doshift
|
||||||
static inline unsigned getMemExtendImm(ARM64_AM::ExtendType ET, bool Imm) {
|
static inline unsigned getMemExtendImm(ARM64_AM::ExtendType ET, bool DoShift) {
|
||||||
assert((Imm & 0x7) == Imm && "Illegal shifted immedate value!");
|
return (unsigned(ET) << 1) | unsigned(DoShift);
|
||||||
return (unsigned(ET) << 1) | (Imm & 0x7);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
Reference in New Issue
Block a user