Class PrimitiveSizes

java.lang.Object
com.pnfsoftware.jeb.core.units.code.asm.type.PrimitiveSizes
All Implemented Interfaces:
IPrimitiveSizes

@Ser public class PrimitiveSizes extends Object implements IPrimitiveSizes
Standard implementation for the sizes of C primitives.
  • Field Details

    • GCC_ARM

      public static final PrimitiveSizes GCC_ARM
      GCC primitive sizes for ARM targets.
    • GCC_ARM64

      public static final PrimitiveSizes GCC_ARM64
      GCC primitive sizes for ARM64 targets.
    • GCC_X86

      public static final PrimitiveSizes GCC_X86
      GCC primitive sizes for x86 targets.
    • GCC_X86_64

      public static final PrimitiveSizes GCC_X86_64
      GCC primitive sizes for x86-64 targets.
    • GCC_MIPS

      public static final PrimitiveSizes GCC_MIPS
      GCC primitive sizes for MIPS targets.
    • MSVC_GENERIC

      public static final PrimitiveSizes MSVC_GENERIC
      Generic MSVC primitive sizes.
    • MSVC_ARM

      public static final PrimitiveSizes MSVC_ARM
      MSVC primitive sizes for ARM targets.
    • MSVC_ARM64

      public static final PrimitiveSizes MSVC_ARM64
      MSVC primitive sizes for ARM64 targets.
    • MSVC_X86

      public static final PrimitiveSizes MSVC_X86
      MSVC primitive sizes for x86 targets.
    • MSVC_X86_64

      public static final PrimitiveSizes MSVC_X86_64
      MSVC primitive sizes for x86-64 targets.
    • COMMON_PRIMITIVE_SIZES

      public static final PrimitiveSizes COMMON_PRIMITIVE_SIZES
      Typical primitives sizes on 32-bit arch.: char=1, short=2, int=4, long=4 (!), long-long=8, float=4, double=8, long-double=10. Better to use compiler+processor-specific statics.
    • COMMON_PRIMITIVE_SIZES64

      public static final PrimitiveSizes COMMON_PRIMITIVE_SIZES64
      Typical primitives sizes on 64-bit arch.: char=1, short=2, int=4, long=8 (!), long-long=8, float=4, double=8, long-double=10. Better to use compiler+processor-specific statics.
  • Constructor Details

    • PrimitiveSizes

      public PrimitiveSizes(int charSize, int shortSize, int intSize, int longSize, int longLongSize, int floatSize, int doubleSize, int longDoubleSize)
      Create primitive sizes.
      Parameters:
      charSize - char size in bytes
      shortSize - short size in bytes
      intSize - int size in bytes
      longSize - long size in bytes
      longLongSize - long long size in bytes
      floatSize - float size in bytes
      doubleSize - double size in bytes
      longDoubleSize - long double size in bytes
    • PrimitiveSizes

      public PrimitiveSizes(IPrimitiveSizes psizes)
      Copy primitive sizes.
      Parameters:
      psizes - source primitive sizes
  • Method Details

    • getCommon

      public static PrimitiveSizes getCommon(ProcessorType proctype, CompilerType comptype)
      Get common primitive sizes for a processor/compiler pair.
      Parameters:
      proctype - processor type, or null for unknown
      comptype - compiler type, or null for unknown
      Returns:
      matching primitive sizes
    • getCharSize

      public int getCharSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of char.
      Specified by:
      getCharSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getShortSize

      public int getShortSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of short.
      Specified by:
      getShortSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getIntSize

      public int getIntSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of int.
      Specified by:
      getIntSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getLongSize

      public int getLongSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of long.
      Specified by:
      getLongSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getLongLongSize

      public int getLongLongSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of long long.
      Specified by:
      getLongLongSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getFloatSize

      public int getFloatSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of float.
      Specified by:
      getFloatSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getDoubleSize

      public int getDoubleSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of double.
      Specified by:
      getDoubleSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • getLongDoubleSize

      public int getLongDoubleSize()
      Description copied from interface: IPrimitiveSizes
      Retrieve the size of long double.
      Specified by:
      getLongDoubleSize in interface IPrimitiveSizes
      Returns:
      size in bytes
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object