require conf/multilib.conf
require conf/machine/include/microblaze/arch-microblaze.inc
require conf/machine/include/baremetal-tc.conf

# ILP request an alternative machine dictionary
INHERIT += "xlnx-standalone"
PACKAGEQA_EXTRA_MACHDEFFUNCS .= '${@bb.utils.contains("TUNE_FEATURES", "64-bit", " xlnx_mb64_dict", "", d)}'

# GNU hash style not supported
LINKER_HASH_STYLE:microblaze = ""

# Define all of the multilibs supproted by this configuration
MULTILIB_GLOBAL_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}"

MULTILIBS += "multilib:libmble"
MULTILIBS += "multilib:libmbbs"
MULTILIBS += "multilib:libmbp"
MULTILIBS += "multilib:libmbm"
MULTILIBS += "multilib:libmbfpd"
MULTILIBS += "multilib:libmbmfpd"
MULTILIBS += "multilib:libmbpm"
MULTILIBS += "multilib:libmbpfpd"
MULTILIBS += "multilib:libmbpmfpd"
MULTILIBS += "multilib:libmbbsp"
MULTILIBS += "multilib:libmbbsm"
MULTILIBS += "multilib:libmbbsfpd"
MULTILIBS += "multilib:libmbbsmfpd"
MULTILIBS += "multilib:libmbbspm"
MULTILIBS += "multilib:libmbbspfpd"
MULTILIBS += "multilib:libmbbspmfpd"
MULTILIBS += "multilib:libmblem64"
MULTILIBS += "multilib:libmblebs"
MULTILIBS += "multilib:libmblep"
MULTILIBS += "multilib:libmblem"
MULTILIBS += "multilib:libmblefpd"
MULTILIBS += "multilib:libmblemfpd"
MULTILIBS += "multilib:libmblepm"
MULTILIBS += "multilib:libmblepfpd"
MULTILIBS += "multilib:libmblepmfpd"
MULTILIBS += "multilib:libmblebsp"
MULTILIBS += "multilib:libmblebsm"
MULTILIBS += "multilib:libmblebsfpd"
MULTILIBS += "multilib:libmblebsmfpd"
MULTILIBS += "multilib:libmblebspm"
MULTILIBS += "multilib:libmblebspfpd"
MULTILIBS += "multilib:libmblebspmfpd"
MULTILIBS += "multilib:libmblem64bs"
MULTILIBS += "multilib:libmblem64p"
MULTILIBS += "multilib:libmblem64m"
MULTILIBS += "multilib:libmblem64fpd"
MULTILIBS += "multilib:libmblem64mfpd"
MULTILIBS += "multilib:libmblem64pm"
MULTILIBS += "multilib:libmblem64pfpd"
MULTILIBS += "multilib:libmblem64pmfpd"
MULTILIBS += "multilib:libmblem64bsp"
MULTILIBS += "multilib:libmblem64bsm"
MULTILIBS += "multilib:libmblem64bsfpd"
MULTILIBS += "multilib:libmblem64bsmfpd"
MULTILIBS += "multilib:libmblem64bspm"
MULTILIBS += "multilib:libmblem64bspfpd"
MULTILIBS += "multilib:libmblem64bspmfpd"


# Base configuration
# CFLAGS:
DEFAULTTUNE = "microblaze"

AVAILTUNES += "microblaze"
BASE_LIB:tune-microblaze = "lib"
TUNE_FEATURES:tune-microblaze = "microblaze bigendian"
PACKAGE_EXTRA_ARCHS:tune-microblaze = "${TUNE_PKGARCH}"


# le
# CFLAGS: -mlittle-endian
DEFAULTTUNE:virtclass-multilib-libmble = "microblazele"

AVAILTUNES += "microblazele"
BASE_LIB:tune-microblazele = "lib/le"
TUNE_FEATURES:tune-microblazele = "microblaze"
PACKAGE_EXTRA_ARCHS:tune-microblazele = "${TUNE_PKGARCH}"


# bs
# CFLAGS: -mxl-barrel-shift
DEFAULTTUNE:virtclass-multilib-libmbbs = "microblazebs"

AVAILTUNES += "microblazebs"
BASE_LIB:tune-microblazebs = "lib/bs"
TUNE_FEATURES:tune-microblazebs = "microblaze bigendian barrel-shift"
PACKAGE_EXTRA_ARCHS:tune-microblazebs = "${TUNE_PKGARCH}"


# p
# CFLAGS: -mxl-pattern-compare
DEFAULTTUNE:virtclass-multilib-libmbp = "microblazep"

AVAILTUNES += "microblazep"
BASE_LIB:tune-microblazep = "lib/p"
TUNE_FEATURES:tune-microblazep = "microblaze bigendian pattern-compare"
PACKAGE_EXTRA_ARCHS:tune-microblazep = "${TUNE_PKGARCH}"


# m
# CFLAGS: -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmbm = "microblazem"

AVAILTUNES += "microblazem"
BASE_LIB:tune-microblazem = "lib/m"
TUNE_FEATURES:tune-microblazem = "microblaze bigendian multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazem = "${TUNE_PKGARCH}"


# fpd
# CFLAGS: -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbfpd = "microblazefpd"

AVAILTUNES += "microblazefpd"
BASE_LIB:tune-microblazefpd = "lib/fpd"
TUNE_FEATURES:tune-microblazefpd = "microblaze bigendian fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazefpd = "${TUNE_PKGARCH}"


# m/fpd
# CFLAGS: -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbmfpd = "microblazemfpd"

AVAILTUNES += "microblazemfpd"
BASE_LIB:tune-microblazemfpd = "lib/m/fpd"
TUNE_FEATURES:tune-microblazemfpd = "microblaze bigendian multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazemfpd = "${TUNE_PKGARCH}"


# p/m
# CFLAGS: -mxl-pattern-compare -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmbpm = "microblazepm"

AVAILTUNES += "microblazepm"
BASE_LIB:tune-microblazepm = "lib/p/m"
TUNE_FEATURES:tune-microblazepm = "microblaze bigendian pattern-compare multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazepm = "${TUNE_PKGARCH}"


# p/fpd
# CFLAGS: -mxl-pattern-compare -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbpfpd = "microblazepfpd"

AVAILTUNES += "microblazepfpd"
BASE_LIB:tune-microblazepfpd = "lib/p/fpd"
TUNE_FEATURES:tune-microblazepfpd = "microblaze bigendian pattern-compare fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazepfpd = "${TUNE_PKGARCH}"


# p/m/fpd
# CFLAGS: -mxl-pattern-compare -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbpmfpd = "microblazepmfpd"

AVAILTUNES += "microblazepmfpd"
BASE_LIB:tune-microblazepmfpd = "lib/p/m/fpd"
TUNE_FEATURES:tune-microblazepmfpd = "microblaze bigendian pattern-compare multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazepmfpd = "${TUNE_PKGARCH}"


# bs/p
# CFLAGS: -mxl-barrel-shift -mxl-pattern-compare
DEFAULTTUNE:virtclass-multilib-libmbbsp = "microblazebsp"

AVAILTUNES += "microblazebsp"
BASE_LIB:tune-microblazebsp = "lib/bs/p"
TUNE_FEATURES:tune-microblazebsp = "microblaze bigendian barrel-shift pattern-compare"
PACKAGE_EXTRA_ARCHS:tune-microblazebsp = "${TUNE_PKGARCH}"


# bs/m
# CFLAGS: -mxl-barrel-shift -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmbbsm = "microblazebsm"

AVAILTUNES += "microblazebsm"
BASE_LIB:tune-microblazebsm = "lib/bs/m"
TUNE_FEATURES:tune-microblazebsm = "microblaze bigendian barrel-shift multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazebsm = "${TUNE_PKGARCH}"


# bs/fpd
# CFLAGS: -mxl-barrel-shift -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbbsfpd = "microblazebsfpd"

AVAILTUNES += "microblazebsfpd"
BASE_LIB:tune-microblazebsfpd = "lib/bs/fpd"
TUNE_FEATURES:tune-microblazebsfpd = "microblaze bigendian barrel-shift fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazebsfpd = "${TUNE_PKGARCH}"


# bs/m/fpd
# CFLAGS: -mxl-barrel-shift -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbbsmfpd = "microblazebsmfpd"

AVAILTUNES += "microblazebsmfpd"
BASE_LIB:tune-microblazebsmfpd = "lib/bs/m/fpd"
TUNE_FEATURES:tune-microblazebsmfpd = "microblaze bigendian barrel-shift multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazebsmfpd = "${TUNE_PKGARCH}"


# bs/p/m
# CFLAGS: -mxl-barrel-shift -mxl-pattern-compare -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmbbspm = "microblazebspm"

AVAILTUNES += "microblazebspm"
BASE_LIB:tune-microblazebspm = "lib/bs/p/m"
TUNE_FEATURES:tune-microblazebspm = "microblaze bigendian barrel-shift pattern-compare multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazebspm = "${TUNE_PKGARCH}"


# bs/p/fpd
# CFLAGS: -mxl-barrel-shift -mxl-pattern-compare -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbbspfpd = "microblazebspfpd"

AVAILTUNES += "microblazebspfpd"
BASE_LIB:tune-microblazebspfpd = "lib/bs/p/fpd"
TUNE_FEATURES:tune-microblazebspfpd = "microblaze bigendian barrel-shift pattern-compare fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazebspfpd = "${TUNE_PKGARCH}"


# bs/p/m/fpd
# CFLAGS: -mxl-barrel-shift -mxl-pattern-compare -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmbbspmfpd = "microblazebspmfpd"

AVAILTUNES += "microblazebspmfpd"
BASE_LIB:tune-microblazebspmfpd = "lib/bs/p/m/fpd"
TUNE_FEATURES:tune-microblazebspmfpd = "microblaze bigendian barrel-shift pattern-compare multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazebspmfpd = "${TUNE_PKGARCH}"


# le/m64
# CFLAGS: -mlittle-endian -m64
DEFAULTTUNE:virtclass-multilib-libmblem64 = "microblazele64"

AVAILTUNES += "microblazele64"
BASE_LIB:tune-microblazele64 = "lib/le/m64"
TUNE_FEATURES:tune-microblazele64 = "microblaze 64-bit"
PACKAGE_EXTRA_ARCHS:tune-microblazele64 = "${TUNE_PKGARCH}"


# le/bs
# CFLAGS: -mlittle-endian -mxl-barrel-shift
DEFAULTTUNE:virtclass-multilib-libmblebs = "microblazelebs"

AVAILTUNES += "microblazelebs"
BASE_LIB:tune-microblazelebs = "lib/le/bs"
TUNE_FEATURES:tune-microblazelebs = "microblaze barrel-shift"
PACKAGE_EXTRA_ARCHS:tune-microblazelebs = "${TUNE_PKGARCH}"


# le/p
# CFLAGS: -mlittle-endian -mxl-pattern-compare
DEFAULTTUNE:virtclass-multilib-libmblep = "microblazelep"

AVAILTUNES += "microblazelep"
BASE_LIB:tune-microblazelep = "lib/le/p"
TUNE_FEATURES:tune-microblazelep = "microblaze pattern-compare"
PACKAGE_EXTRA_ARCHS:tune-microblazelep = "${TUNE_PKGARCH}"


# le/m
# CFLAGS: -mlittle-endian -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblem = "microblazelem"

AVAILTUNES += "microblazelem"
BASE_LIB:tune-microblazelem = "lib/le/m"
TUNE_FEATURES:tune-microblazelem = "microblaze multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazelem = "${TUNE_PKGARCH}"


# le/fpd
# CFLAGS: -mlittle-endian -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblefpd = "microblazelefpd"

AVAILTUNES += "microblazelefpd"
BASE_LIB:tune-microblazelefpd = "lib/le/fpd"
TUNE_FEATURES:tune-microblazelefpd = "microblaze fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelefpd = "${TUNE_PKGARCH}"


# le/m/fpd
# CFLAGS: -mlittle-endian -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblemfpd = "microblazelemfpd"

AVAILTUNES += "microblazelemfpd"
BASE_LIB:tune-microblazelemfpd = "lib/le/m/fpd"
TUNE_FEATURES:tune-microblazelemfpd = "microblaze multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelemfpd = "${TUNE_PKGARCH}"


# le/p/m
# CFLAGS: -mlittle-endian -mxl-pattern-compare -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblepm = "microblazelepm"

AVAILTUNES += "microblazelepm"
BASE_LIB:tune-microblazelepm = "lib/le/p/m"
TUNE_FEATURES:tune-microblazelepm = "microblaze pattern-compare multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazelepm = "${TUNE_PKGARCH}"


# le/p/fpd
# CFLAGS: -mlittle-endian -mxl-pattern-compare -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblepfpd = "microblazelepfpd"

AVAILTUNES += "microblazelepfpd"
BASE_LIB:tune-microblazelepfpd = "lib/le/p/fpd"
TUNE_FEATURES:tune-microblazelepfpd = "microblaze pattern-compare fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelepfpd = "${TUNE_PKGARCH}"


# le/p/m/fpd
# CFLAGS: -mlittle-endian -mxl-pattern-compare -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblepmfpd = "microblazelepmfpd"

AVAILTUNES += "microblazelepmfpd"
BASE_LIB:tune-microblazelepmfpd = "lib/le/p/m/fpd"
TUNE_FEATURES:tune-microblazelepmfpd = "microblaze pattern-compare multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelepmfpd = "${TUNE_PKGARCH}"


# le/bs/p
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare
DEFAULTTUNE:virtclass-multilib-libmblebsp = "microblazelebsp"

AVAILTUNES += "microblazelebsp"
BASE_LIB:tune-microblazelebsp = "lib/le/bs/p"
TUNE_FEATURES:tune-microblazelebsp = "microblaze barrel-shift pattern-compare"
PACKAGE_EXTRA_ARCHS:tune-microblazelebsp = "${TUNE_PKGARCH}"


# le/bs/m
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblebsm = "microblazelebsm"

AVAILTUNES += "microblazelebsm"
BASE_LIB:tune-microblazelebsm = "lib/le/bs/m"
TUNE_FEATURES:tune-microblazelebsm = "microblaze barrel-shift multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazelebsm = "${TUNE_PKGARCH}"


# le/bs/fpd
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblebsfpd = "microblazelebsfpd"

AVAILTUNES += "microblazelebsfpd"
BASE_LIB:tune-microblazelebsfpd = "lib/le/bs/fpd"
TUNE_FEATURES:tune-microblazelebsfpd = "microblaze barrel-shift fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelebsfpd = "${TUNE_PKGARCH}"


# le/bs/m/fpd
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblebsmfpd = "microblazelebsmfpd"

AVAILTUNES += "microblazelebsmfpd"
BASE_LIB:tune-microblazelebsmfpd = "lib/le/bs/m/fpd"
TUNE_FEATURES:tune-microblazelebsmfpd = "microblaze barrel-shift multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelebsmfpd = "${TUNE_PKGARCH}"


# le/bs/p/m
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblebspm = "microblazelebspm"

AVAILTUNES += "microblazelebspm"
BASE_LIB:tune-microblazelebspm = "lib/le/bs/p/m"
TUNE_FEATURES:tune-microblazelebspm = "microblaze barrel-shift pattern-compare multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazelebspm = "${TUNE_PKGARCH}"


# le/bs/p/fpd
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblebspfpd = "microblazelebspfpd"

AVAILTUNES += "microblazelebspfpd"
BASE_LIB:tune-microblazelebspfpd = "lib/le/bs/p/fpd"
TUNE_FEATURES:tune-microblazelebspfpd = "microblaze barrel-shift pattern-compare fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelebspfpd = "${TUNE_PKGARCH}"


# le/bs/p/m/fpd
# CFLAGS: -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblebspmfpd = "microblazelebspmfpd"

AVAILTUNES += "microblazelebspmfpd"
BASE_LIB:tune-microblazelebspmfpd = "lib/le/bs/p/m/fpd"
TUNE_FEATURES:tune-microblazelebspmfpd = "microblaze barrel-shift pattern-compare multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazelebspmfpd = "${TUNE_PKGARCH}"


# le/m64/bs
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift
DEFAULTTUNE:virtclass-multilib-libmblem64bs = "microblazele64bs"

AVAILTUNES += "microblazele64bs"
BASE_LIB:tune-microblazele64bs = "lib/le/m64/bs"
TUNE_FEATURES:tune-microblazele64bs = "microblaze 64-bit barrel-shift"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bs = "${TUNE_PKGARCH}"


# le/m64/p
# CFLAGS: -mlittle-endian -m64 -mxl-pattern-compare
DEFAULTTUNE:virtclass-multilib-libmblem64p = "microblazele64p"

AVAILTUNES += "microblazele64p"
BASE_LIB:tune-microblazele64p = "lib/le/m64/p"
TUNE_FEATURES:tune-microblazele64p = "microblaze 64-bit pattern-compare"
PACKAGE_EXTRA_ARCHS:tune-microblazele64p = "${TUNE_PKGARCH}"


# le/m64/m
# CFLAGS: -mlittle-endian -m64 -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblem64m = "microblazele64m"

AVAILTUNES += "microblazele64m"
BASE_LIB:tune-microblazele64m = "lib/le/m64/m"
TUNE_FEATURES:tune-microblazele64m = "microblaze 64-bit multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazele64m = "${TUNE_PKGARCH}"


# le/m64/fpd
# CFLAGS: -mlittle-endian -m64 -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64fpd = "microblazele64fpd"

AVAILTUNES += "microblazele64fpd"
BASE_LIB:tune-microblazele64fpd = "lib/le/m64/fpd"
TUNE_FEATURES:tune-microblazele64fpd = "microblaze 64-bit fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64fpd = "${TUNE_PKGARCH}"


# le/m64/m/fpd
# CFLAGS: -mlittle-endian -m64 -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64mfpd = "microblazele64mfpd"

AVAILTUNES += "microblazele64mfpd"
BASE_LIB:tune-microblazele64mfpd = "lib/le/m64/m/fpd"
TUNE_FEATURES:tune-microblazele64mfpd = "microblaze 64-bit multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64mfpd = "${TUNE_PKGARCH}"


# le/m64/p/m
# CFLAGS: -mlittle-endian -m64 -mxl-pattern-compare -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblem64pm = "microblazele64pm"

AVAILTUNES += "microblazele64pm"
BASE_LIB:tune-microblazele64pm = "lib/le/m64/p/m"
TUNE_FEATURES:tune-microblazele64pm = "microblaze 64-bit pattern-compare multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazele64pm = "${TUNE_PKGARCH}"


# le/m64/p/fpd
# CFLAGS: -mlittle-endian -m64 -mxl-pattern-compare -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64pfpd = "microblazele64pfpd"

AVAILTUNES += "microblazele64pfpd"
BASE_LIB:tune-microblazele64pfpd = "lib/le/m64/p/fpd"
TUNE_FEATURES:tune-microblazele64pfpd = "microblaze 64-bit pattern-compare fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64pfpd = "${TUNE_PKGARCH}"


# le/m64/p/m/fpd
# CFLAGS: -mlittle-endian -m64 -mxl-pattern-compare -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64pmfpd = "microblazele64pmfpd"

AVAILTUNES += "microblazele64pmfpd"
BASE_LIB:tune-microblazele64pmfpd = "lib/le/m64/p/m/fpd"
TUNE_FEATURES:tune-microblazele64pmfpd = "microblaze 64-bit pattern-compare multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64pmfpd = "${TUNE_PKGARCH}"


# le/m64/bs/p
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mxl-pattern-compare
DEFAULTTUNE:virtclass-multilib-libmblem64bsp = "microblazele64bsp"

AVAILTUNES += "microblazele64bsp"
BASE_LIB:tune-microblazele64bsp = "lib/le/m64/bs/p"
TUNE_FEATURES:tune-microblazele64bsp = "microblaze 64-bit barrel-shift pattern-compare"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bsp = "${TUNE_PKGARCH}"


# le/m64/bs/m
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblem64bsm = "microblazele64bsm"

AVAILTUNES += "microblazele64bsm"
BASE_LIB:tune-microblazele64bsm = "lib/le/m64/bs/m"
TUNE_FEATURES:tune-microblazele64bsm = "microblaze 64-bit barrel-shift multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bsm = "${TUNE_PKGARCH}"


# le/m64/bs/fpd
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64bsfpd = "microblazele64bsfpd"

AVAILTUNES += "microblazele64bsfpd"
BASE_LIB:tune-microblazele64bsfpd = "lib/le/m64/bs/fpd"
TUNE_FEATURES:tune-microblazele64bsfpd = "microblaze 64-bit barrel-shift fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bsfpd = "${TUNE_PKGARCH}"


# le/m64/bs/m/fpd
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64bsmfpd = "microblazele64bsmfpd"

AVAILTUNES += "microblazele64bsmfpd"
BASE_LIB:tune-microblazele64bsmfpd = "lib/le/m64/bs/m/fpd"
TUNE_FEATURES:tune-microblazele64bsmfpd = "microblaze 64-bit barrel-shift multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bsmfpd = "${TUNE_PKGARCH}"


# le/m64/bs/p/m
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mxl-pattern-compare -mno-xl-soft-mul
DEFAULTTUNE:virtclass-multilib-libmblem64bspm = "microblazele64bspm"

AVAILTUNES += "microblazele64bspm"
BASE_LIB:tune-microblazele64bspm = "lib/le/m64/bs/p/m"
TUNE_FEATURES:tune-microblazele64bspm = "microblaze 64-bit barrel-shift pattern-compare multiply-low"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bspm = "${TUNE_PKGARCH}"


# le/m64/bs/p/fpd
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mxl-pattern-compare -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64bspfpd = "microblazele64bspfpd"

AVAILTUNES += "microblazele64bspfpd"
BASE_LIB:tune-microblazele64bspfpd = "lib/le/m64/bs/p/fpd"
TUNE_FEATURES:tune-microblazele64bspfpd = "microblaze 64-bit barrel-shift pattern-compare fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bspfpd = "${TUNE_PKGARCH}"


# le/m64/bs/p/m/fpd
# CFLAGS: -mlittle-endian -m64 -mxl-barrel-shift -mxl-pattern-compare -mno-xl-soft-mul -mhard-float
DEFAULTTUNE:virtclass-multilib-libmblem64bspmfpd = "microblazele64bspmfpd"

AVAILTUNES += "microblazele64bspmfpd"
BASE_LIB:tune-microblazele64bspmfpd = "lib/le/m64/bs/p/m/fpd"
TUNE_FEATURES:tune-microblazele64bspmfpd = "microblaze 64-bit barrel-shift pattern-compare multiply-low fpu-hard"
PACKAGE_EXTRA_ARCHS:tune-microblazele64bspmfpd = "${TUNE_PKGARCH}"
