-
Notifications
You must be signed in to change notification settings - Fork 15
arcv: simplify multilib configurations and cover more cases #147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,52 +6,52 @@ MULTILIB_DIRNAMES = | |
MULTILIB_REQUIRED = | ||
MULTILIB_REUSE = | ||
|
||
# Fallback configurations | ||
# -march multilib options for RMX-100 mini | ||
arcv_march_variants = rv32e | ||
arcv_march_variants += rv32e_zicsr | ||
arcv_march_variants += rv32em | ||
arcv_march_variants += rv32ea | ||
arcv_march_variants += rv32ema | ||
arcv_march_variants += rv32emac_zcb_zba_zbb_zbs_zfinx_zdinx | ||
|
||
# -march multilib options for RMX-100 and RMX-500 | ||
arcv_march_variants += rv32i | ||
arcv_march_variants += rv32i_zicsr | ||
arcv_march_variants += rv32ic | ||
arcv_march_variants += rv32ic_zicsr | ||
arcv_march_variants += rv32ia | ||
arcv_march_variants += rv32ia_zicsr | ||
arcv_march_variants += rv32im | ||
arcv_march_variants += rv32im_zicsr | ||
arcv_march_variants += rv32iac | ||
arcv_march_variants += rv32iac_zicsr | ||
arcv_march_variants += rv32imc | ||
arcv_march_variants += rv32imc_zicsr | ||
arcv_march_variants += rv32ia | ||
arcv_march_variants += rv32ima | ||
arcv_march_variants += rv32iac | ||
arcv_march_variants += rv32imac | ||
arcv_march_variants += rv32imac_zicsr | ||
arcv_march_variants += rv32ic_zcb_zba_zbb_zbs | ||
arcv_march_variants += rv32imc_zcb_zba_zbb_zbs | ||
arcv_march_variants += rv32imac_zcb_zba_zbb_zbs | ||
arcv_march_variants += rv32imac_zcb_zba_zbb_zbs_zfinx | ||
arcv_march_variants += rv32imac_zcb_zba_zbb_zbs_zfinx_zdinx | ||
arcv_march_variants += rv32i_zba_zbb_zbs | ||
arcv_march_variants += rv32im_zba_zbb_zbs | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IIRC, the most critical insns for strcmp() are or.b and rev8 which are both part of Zbb. Should we create a fallback without Zba and Zbs, but with Zbb? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think that it's reasonable now. There could be too many of such fallbacks with a single |
||
arcv_march_variants += rv32ima_zba_zbb_zbs | ||
arcv_march_variants += rv32ima_zba_zbb_zbs_zfinx | ||
arcv_march_variants += rv32ima_zba_zbb_zbs_zfinx_zdinx | ||
|
||
# -march multilib options for RHX-100 (basic combinations are covered | ||
# in RMX-100 and RMX-500 list) | ||
arcv_march_variants += rv32imafc | ||
arcv_march_variants += rv32imafdc | ||
arcv_march_variants += rv32imafd_zca | ||
arcv_march_variants += rv32imafc_zcb_zba_zbb_zbs | ||
arcv_march_variants += rv32imafd_zca_zcb_zba_zbb_zbs | ||
|
||
# -march multilib options for RPX-100 | ||
arcv_march_variants += rv64i | ||
arcv_march_variants += rv64i_zicsr | ||
arcv_march_variants += rv64ic | ||
arcv_march_variants += rv64im | ||
arcv_march_variants += rv64imc | ||
arcv_march_variants += rv64ia | ||
arcv_march_variants += rv64ima | ||
arcv_march_variants += rv64iac | ||
arcv_march_variants += rv64imac | ||
arcv_march_variants += rv64imac_zicsr | ||
arcv_march_variants += rv64imafdc | ||
|
||
# RMX-100 mini | ||
arcv_march_variants += rv32emac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zdinx_zicsr | ||
|
||
# RMX-100/500 | ||
arcv_march_variants += rv32ic_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32im_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32im_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32imc_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zicsr | ||
arcv_march_variants += rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zdinx_zicsr | ||
|
||
# RHX-100 | ||
arcv_march_variants += rv32imac_zcb_zcmp_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32imafc_zcb_zcmp_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv32imafd_zca_zcb_zcmp_zba_zbb_zbs_zicsr | ||
|
||
# RPX-100 | ||
arcv_march_variants += rv64imac_zcb_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv64imafdc_zcb_zba_zbb_zbs_zicsr | ||
arcv_march_variants += rv64imac_zcb_zba_zbb_zbs | ||
arcv_march_variants += rv64imafdc_zcb_zba_zbb_zbs | ||
|
||
MULTILIB_OPTIONS += $(subst $(space),/,$(patsubst %,march=%,$(arcv_march_variants))) | ||
MULTILIB_DIRNAMES += $(arcv_march_variants) | ||
|
@@ -65,64 +65,79 @@ MULTILIB_DIRNAMES += rmx100 rmx500 | |
MULTILIB_OPTIONS += mcmodel=medany | ||
MULTILIB_DIRNAMES += medany | ||
|
||
# Fallback configurations for general targets | ||
MULTILIB_REQUIRED += march=rv32i/mabi=ilp32 | ||
|
||
# Fallback configurations for RMX-100 mini | ||
# Configurations for RMX-100 mini | ||
MULTILIB_REQUIRED += march=rv32e/mabi=ilp32e/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32em/mabi=ilp32e/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ea/mabi=ilp32e/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ema/mabi=ilp32e/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32emac_zcb_zba_zbb_zbs_zfinx_zdinx/mabi=ilp32e/mtune=arc-v-rmx-100-series | ||
|
||
# Fallback configurations for RMX-100 | ||
# Configurations for RMX-100 - general | ||
MULTILIB_REQUIRED += march=rv32i/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ic/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32im/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ia/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imc_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32iac_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
|
||
# Fallback configurations for RMX-500 | ||
MULTILIB_REQUIRED += march=rv32ima/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32iac/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
|
||
# Configurations for RMX-100 - optimized | ||
MULTILIB_REQUIRED += march=rv32ic_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imc_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs_zfinx/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs_zfinx_zdinx/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
|
||
# Configurations for RMX-100 - optimized (without C and Zc*) | ||
MULTILIB_REQUIRED += march=rv32i_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32im_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ima_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ima_zba_zbb_zbs_zfinx/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ima_zba_zbb_zbs_zfinx_zdinx/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
|
||
# Configurations for RMX-500 - general | ||
MULTILIB_REQUIRED += march=rv32i/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32ic/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32im/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32ia/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imc_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32iac_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
|
||
# Fallback configurations for RHX-100 | ||
MULTILIB_REQUIRED += march=rv32ima/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32iac/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
|
||
# Configurations for RMX-500 - optimized | ||
MULTILIB_REQUIRED += march=rv32ic_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imc_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs_zfinx/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs_zfinx_zdinx/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
|
||
# Configurations for RHX-100 - general | ||
MULTILIB_REQUIRED += march=rv32i/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32ic/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32im/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32ia/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zicsr/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32ima/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32iac/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafc/mabi=ilp32f/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafdc/mabi=ilp32d/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafd_zca/mabi=ilp32d/mtune=arc-v-rhx-100-series | ||
|
||
# Configurations for RHX-100 - optimized | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zba_zbb_zbs/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafc_zcb_zba_zbb_zbs/mabi=ilp32f/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafd_zca_zcb_zba_zbb_zbs/mabi=ilp32d/mtune=arc-v-rhx-100-series | ||
|
||
# Fallback configurations for RPX-100 | ||
# Configurations for RPX-100 - general | ||
MULTILIB_REQUIRED += march=rv64i/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64ic/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64im/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64imc/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64ia/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64imac_zicsr/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64ima/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64iac/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64imac/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64imafdc/mabi=lp64d/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
|
||
# RMX-100 mini | ||
MULTILIB_REQUIRED += march=rv32emac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zdinx_zicsr/mabi=ilp32e/mtune=arc-v-rmx-100-series | ||
|
||
# RMX-100 | ||
MULTILIB_REQUIRED += march=rv32im_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32ic_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32im_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imc_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zdinx_zicsr/mabi=ilp32/mtune=arc-v-rmx-100-series | ||
|
||
# RMX-500 | ||
MULTILIB_REQUIRED += march=rv32ic_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32im_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imc_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zcmt_zba_zbb_zbs_zfinx_zdinx_zicsr/mabi=ilp32/mtune=arc-v-rmx-500-series | ||
|
||
# RHX-100 | ||
MULTILIB_REQUIRED += march=rv32imac_zcb_zcmp_zba_zbb_zbs_zicsr/mabi=ilp32/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafc_zcb_zcmp_zba_zbb_zbs_zicsr/mabi=ilp32f/mtune=arc-v-rhx-100-series | ||
MULTILIB_REQUIRED += march=rv32imafd_zca_zcb_zcmp_zba_zbb_zbs_zicsr/mabi=ilp32d/mtune=arc-v-rhx-100-series | ||
|
||
# RPX-100 | ||
MULTILIB_REQUIRED += march=rv64imac_zcb_zba_zbb_zbs_zicsr/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64imafdc_zcb_zba_zbb_zbs_zicsr/mabi=lp64d/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
# Configurations for RPX-100 - optimized | ||
MULTILIB_REQUIRED += march=rv64imac_zcb_zba_zbb_zbs/mabi=lp64/mtune=arc-v-rpx-100-series/mcmodel=medany | ||
MULTILIB_REQUIRED += march=rv64imafdc_zcb_zba_zbb_zbs/mabi=lp64d/mtune=arc-v-rpx-100-series/mcmodel=medany |
Uh oh!
There was an error while loading. Please reload this page.