forked from OSchip/llvm-project
MC: whitespace
Fix indentation, remove unnecessary line. NFC. llvm-svn: 200158
This commit is contained in:
parent
f19dc30518
commit
077fd251fd
|
@ -418,65 +418,64 @@ static unsigned adjustFixupValue(const MCFixup &Fixup, uint64_t Value,
|
|||
return swapped;
|
||||
}
|
||||
case ARM::fixup_arm_thumb_bl: {
|
||||
// The value doesn't encode the low bit (always zero) and is offset by
|
||||
// four. The 32-bit immediate value is encoded as
|
||||
// imm32 = SignExtend(S:I1:I2:imm10:imm11:0)
|
||||
// where I1 = NOT(J1 ^ S) and I2 = NOT(J2 ^ S).
|
||||
// The value is encoded into disjoint bit positions in the destination
|
||||
// opcode. x = unchanged, I = immediate value bit, S = sign extension bit,
|
||||
// J = either J1 or J2 bit
|
||||
//
|
||||
// BL: xxxxxSIIIIIIIIII xxJxJIIIIIIIIIII
|
||||
//
|
||||
// Note that the halfwords are stored high first, low second; so we need
|
||||
// to transpose the fixup value here to map properly.
|
||||
uint32_t offset = (Value - 4) >> 1;
|
||||
uint32_t signBit = (offset & 0x800000) >> 23;
|
||||
uint32_t I1Bit = (offset & 0x400000) >> 22;
|
||||
uint32_t J1Bit = (I1Bit ^ 0x1) ^ signBit;
|
||||
uint32_t I2Bit = (offset & 0x200000) >> 21;
|
||||
uint32_t J2Bit = (I2Bit ^ 0x1) ^ signBit;
|
||||
uint32_t imm10Bits = (offset & 0x1FF800) >> 11;
|
||||
uint32_t imm11Bits = (offset & 0x000007FF);
|
||||
|
||||
uint32_t Binary = 0;
|
||||
uint32_t firstHalf = (((uint16_t)signBit << 10) | (uint16_t)imm10Bits);
|
||||
uint32_t secondHalf = (((uint16_t)J1Bit << 13) | ((uint16_t)J2Bit << 11) |
|
||||
(uint16_t)imm11Bits);
|
||||
Binary |= secondHalf << 16;
|
||||
Binary |= firstHalf;
|
||||
return Binary;
|
||||
// The value doesn't encode the low bit (always zero) and is offset by
|
||||
// four. The 32-bit immediate value is encoded as
|
||||
// imm32 = SignExtend(S:I1:I2:imm10:imm11:0)
|
||||
// where I1 = NOT(J1 ^ S) and I2 = NOT(J2 ^ S).
|
||||
// The value is encoded into disjoint bit positions in the destination
|
||||
// opcode. x = unchanged, I = immediate value bit, S = sign extension bit,
|
||||
// J = either J1 or J2 bit
|
||||
//
|
||||
// BL: xxxxxSIIIIIIIIII xxJxJIIIIIIIIIII
|
||||
//
|
||||
// Note that the halfwords are stored high first, low second; so we need
|
||||
// to transpose the fixup value here to map properly.
|
||||
uint32_t offset = (Value - 4) >> 1;
|
||||
uint32_t signBit = (offset & 0x800000) >> 23;
|
||||
uint32_t I1Bit = (offset & 0x400000) >> 22;
|
||||
uint32_t J1Bit = (I1Bit ^ 0x1) ^ signBit;
|
||||
uint32_t I2Bit = (offset & 0x200000) >> 21;
|
||||
uint32_t J2Bit = (I2Bit ^ 0x1) ^ signBit;
|
||||
uint32_t imm10Bits = (offset & 0x1FF800) >> 11;
|
||||
uint32_t imm11Bits = (offset & 0x000007FF);
|
||||
|
||||
uint32_t Binary = 0;
|
||||
uint32_t firstHalf = (((uint16_t)signBit << 10) | (uint16_t)imm10Bits);
|
||||
uint32_t secondHalf = (((uint16_t)J1Bit << 13) | ((uint16_t)J2Bit << 11) |
|
||||
(uint16_t)imm11Bits);
|
||||
Binary |= secondHalf << 16;
|
||||
Binary |= firstHalf;
|
||||
return Binary;
|
||||
}
|
||||
case ARM::fixup_arm_thumb_blx: {
|
||||
// The value doesn't encode the low two bits (always zero) and is offset by
|
||||
// four (see fixup_arm_thumb_cp). The 32-bit immediate value is encoded as
|
||||
// imm32 = SignExtend(S:I1:I2:imm10H:imm10L:00)
|
||||
// where I1 = NOT(J1 ^ S) and I2 = NOT(J2 ^ S).
|
||||
// The value is encoded into disjoint bit positions in the destination
|
||||
// opcode. x = unchanged, I = immediate value bit, S = sign extension bit,
|
||||
// J = either J1 or J2 bit, 0 = zero.
|
||||
//
|
||||
// BLX: xxxxxSIIIIIIIIII xxJxJIIIIIIIIII0
|
||||
//
|
||||
// Note that the halfwords are stored high first, low second; so we need
|
||||
// to transpose the fixup value here to map properly.
|
||||
uint32_t offset = (Value - 2) >> 2;
|
||||
uint32_t signBit = (offset & 0x400000) >> 22;
|
||||
uint32_t I1Bit = (offset & 0x200000) >> 21;
|
||||
uint32_t J1Bit = (I1Bit ^ 0x1) ^ signBit;
|
||||
uint32_t I2Bit = (offset & 0x100000) >> 20;
|
||||
uint32_t J2Bit = (I2Bit ^ 0x1) ^ signBit;
|
||||
uint32_t imm10HBits = (offset & 0xFFC00) >> 10;
|
||||
uint32_t imm10LBits = (offset & 0x3FF);
|
||||
// The value doesn't encode the low two bits (always zero) and is offset by
|
||||
// four (see fixup_arm_thumb_cp). The 32-bit immediate value is encoded as
|
||||
// imm32 = SignExtend(S:I1:I2:imm10H:imm10L:00)
|
||||
// where I1 = NOT(J1 ^ S) and I2 = NOT(J2 ^ S).
|
||||
// The value is encoded into disjoint bit positions in the destination
|
||||
// opcode. x = unchanged, I = immediate value bit, S = sign extension bit,
|
||||
// J = either J1 or J2 bit, 0 = zero.
|
||||
//
|
||||
// BLX: xxxxxSIIIIIIIIII xxJxJIIIIIIIIII0
|
||||
//
|
||||
// Note that the halfwords are stored high first, low second; so we need
|
||||
// to transpose the fixup value here to map properly.
|
||||
uint32_t offset = (Value - 2) >> 2;
|
||||
uint32_t signBit = (offset & 0x400000) >> 22;
|
||||
uint32_t I1Bit = (offset & 0x200000) >> 21;
|
||||
uint32_t J1Bit = (I1Bit ^ 0x1) ^ signBit;
|
||||
uint32_t I2Bit = (offset & 0x100000) >> 20;
|
||||
uint32_t J2Bit = (I2Bit ^ 0x1) ^ signBit;
|
||||
uint32_t imm10HBits = (offset & 0xFFC00) >> 10;
|
||||
uint32_t imm10LBits = (offset & 0x3FF);
|
||||
|
||||
uint32_t Binary = 0;
|
||||
uint32_t firstHalf = (((uint16_t)signBit << 10) | (uint16_t)imm10HBits);
|
||||
uint32_t secondHalf = (((uint16_t)J1Bit << 13) | ((uint16_t)J2Bit << 11) |
|
||||
((uint16_t)imm10LBits) << 1);
|
||||
Binary |= secondHalf << 16;
|
||||
Binary |= firstHalf;
|
||||
return Binary;
|
||||
uint32_t Binary = 0;
|
||||
uint32_t firstHalf = (((uint16_t)signBit << 10) | (uint16_t)imm10HBits);
|
||||
uint32_t secondHalf = (((uint16_t)J1Bit << 13) | ((uint16_t)J2Bit << 11) |
|
||||
((uint16_t)imm10LBits) << 1);
|
||||
Binary |= secondHalf << 16;
|
||||
Binary |= firstHalf;
|
||||
return Binary;
|
||||
}
|
||||
case ARM::fixup_arm_thumb_cp:
|
||||
// Offset by 4, and don't encode the low two bits. Two bytes of that
|
||||
|
|
Loading…
Reference in New Issue