[llvm] r213011 - [X86] Specify all TSFlags bit-offsets symbolically

Craig Topper craig.topper at gmail.com
Mon Jul 14 16:33:51 PDT 2014


They're relative to VEXShift to keep the values fitting in an unsigned so
it can be an enum. Perhaps with strongly typed enums in c++11 that can be
fixed now.


On Mon, Jul 14, 2014 at 4:18 PM, Adam Nemet <anemet at apple.com> wrote:

> Author: anemet
> Date: Mon Jul 14 18:18:39 2014
> New Revision: 213011
>
> URL: http://llvm.org/viewvc/llvm-project?rev=213011&view=rev
> Log:
> [X86] Specify all TSFlags bit-offsets symbolically
>
> No functional change.
>
> The offsets for the other bitfields are specified symbolically.  I need to
> increase the size for one of the earlier fields which is easier after this
> cleanup.
>
> Why these bits are relative to VEXShift is a bit strange but that is for
> another cleanup.
>
> I made sure that the values for the enums are unchanged after this change.
>
> Modified:
>     llvm/trunk/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
>
> Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86BaseInfo.h?rev=213011&r1=213010&r2=213011&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/MCTargetDesc/X86BaseInfo.h (original)
> +++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86BaseInfo.h Mon Jul 14
> 18:18:39 2014
> @@ -534,14 +534,17 @@ namespace X86II {
>      /// storing a classifier in the imm8 field.  To simplify our
> implementation,
>      /// we handle this by storeing the classifier in the opcode field and
> using
>      /// this flag to indicate that the encoder should do the wacky 3DNow!
> thing.
> -    Has3DNow0F0FOpcode = 1U << 15,
> +    Has3DNow0F0FOpcodeShift = EVEX_CD8VShift + 3,
> +    Has3DNow0F0FOpcode = 1U << (Has3DNow0F0FOpcodeShift - VEXShift),
>
>      /// MemOp4 - Used to indicate swapping of operand 3 and 4 to be
> encoded in
>      /// ModRM or I8IMM. This is used for FMA4 and XOP instructions.
> -    MemOp4 = 1U << 16,
> +    MemOp4Shift = Has3DNow0F0FOpcodeShift + 1,
> +    MemOp4 = 1U << (MemOp4Shift - VEXShift),
>
>      /// Explicitly specified rounding control
> -    EVEX_RC = 1U << 17
> +    EVEX_RCShift = MemOp4Shift + 1,
> +    EVEX_RC = 1U << (EVEX_RCShift - VEXShift)
>    };
>
>    // getBaseOpcodeFor - This function returns the "base" X86 opcode for
> the
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>



-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140714/cabfe891/attachment.html>


More information about the llvm-commits mailing list