1*4882a593Smuzhiyun# This include describes the math features (integer and floating point) that 2*4882a593Smuzhiyun# are available for the MicroBlaze ISA 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunTUNEVALID[multiply-low] = "Hardware multipler with 32 bit result" 5*4882a593SmuzhiyunTUNEVALID[multiply-high] = "Hardware multipler with 64 bit result" 6*4882a593SmuzhiyunTUNEVALID[divide-hard] = "Hardware divider" 7*4882a593SmuzhiyunTUNEVALID[fpu-soft] = "Software FPU" 8*4882a593SmuzhiyunTUNEVALID[fpu-hard] = "Hardware FPU in basic mode" 9*4882a593SmuzhiyunTUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)" 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunTUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended" 12*4882a593SmuzhiyunTUNECONFLICTS[fpu-hard] = "fpu-soft" 13*4882a593SmuzhiyunTUNECONFLICTS[fpu-hard-extended] = "fpu-soft" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun# Compiler args 16*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], ' -mno-xl-soft-mul', ' -mxl-soft-mul', d)}" 17*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', ' -mxl-multiply-high', '', d)}" 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', ' -mno-xl-soft-div', ' -mxl-soft-div', d)}" 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}" 22*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], ' -mhard-float', '', d)}" 23*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', ' -mxl-float-convert -mxl-float-sqrt', '', d)}" 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun# Set target fpu (bitbake known target) to soft or hard (basic or extended) 26*4882a593SmuzhiyunTARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}" 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun# Package Architecture formatting 29*4882a593SmuzhiyunMBPKGARCH_MATH = "" 30*4882a593SmuzhiyunMBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}" 31*4882a593SmuzhiyunMBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '', d)}" 32*4882a593SmuzhiyunMBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-fe', bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '-fb', '', d), d)}" 33*4882a593Smuzhiyun 34