diff --git a/gas/ChangeLog b/gas/ChangeLog index 2878773d9c..0c7ee6ff9d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2000-07-04 Alexandre Oliva + + * config/tc-arm.c (psrs): Accept combinations of flags. + 2000-07-03 Marek Michalkiewicz * config/tc-avr.c: Change _ () to _() around all strings marked diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 50e4beadae..9d712700cf 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -407,6 +407,127 @@ static CONST struct asm_psr psrs[] = {"CPSR_s", true, PSR_s}, {"SPSR_x", false, PSR_x}, {"SPSR_s", false, PSR_s}, + /* Combinations of flags. */ + {"CPSR_fs", true, PSR_f | PSR_s}, + {"CPSR_fx", true, PSR_f | PSR_x}, + {"CPSR_fc", true, PSR_f | PSR_c}, + {"CPSR_sf", true, PSR_s | PSR_f}, + {"CPSR_sx", true, PSR_s | PSR_x}, + {"CPSR_sc", true, PSR_s | PSR_c}, + {"CPSR_xf", true, PSR_x | PSR_f}, + {"CPSR_xs", true, PSR_x | PSR_s}, + {"CPSR_xc", true, PSR_x | PSR_c}, + {"CPSR_cf", true, PSR_c | PSR_f}, + {"CPSR_cs", true, PSR_c | PSR_s}, + {"CPSR_cx", true, PSR_c | PSR_x}, + {"CPSR_fsx", true, PSR_f | PSR_s | PSR_x}, + {"CPSR_fsc", true, PSR_f | PSR_s | PSR_c}, + {"CPSR_fxs", true, PSR_f | PSR_x | PSR_s}, + {"CPSR_fxc", true, PSR_f | PSR_x | PSR_c}, + {"CPSR_fcs", true, PSR_f | PSR_c | PSR_s}, + {"CPSR_fcx", true, PSR_f | PSR_c | PSR_x}, + {"CPSR_sfx", true, PSR_s | PSR_f | PSR_x}, + {"CPSR_sfc", true, PSR_s | PSR_f | PSR_c}, + {"CPSR_sxf", true, PSR_s | PSR_x | PSR_f}, + {"CPSR_sxc", true, PSR_s | PSR_x | PSR_c}, + {"CPSR_scf", true, PSR_s | PSR_c | PSR_f}, + {"CPSR_scx", true, PSR_s | PSR_c | PSR_x}, + {"CPSR_xfs", true, PSR_x | PSR_f | PSR_s}, + {"CPSR_xfc", true, PSR_x | PSR_f | PSR_c}, + {"CPSR_xsf", true, PSR_x | PSR_s | PSR_f}, + {"CPSR_xsc", true, PSR_x | PSR_s | PSR_c}, + {"CPSR_xcf", true, PSR_x | PSR_c | PSR_f}, + {"CPSR_xcs", true, PSR_x | PSR_c | PSR_s}, + {"CPSR_cfs", true, PSR_c | PSR_f | PSR_s}, + {"CPSR_cfx", true, PSR_c | PSR_f | PSR_x}, + {"CPSR_csf", true, PSR_c | PSR_s | PSR_f}, + {"CPSR_csx", true, PSR_c | PSR_s | PSR_x}, + {"CPSR_cxf", true, PSR_c | PSR_x | PSR_f}, + {"CPSR_cxs", true, PSR_c | PSR_x | PSR_s}, + {"CPSR_fsxc", true, PSR_f | PSR_s | PSR_x | PSR_c}, + {"CPSR_fscx", true, PSR_f | PSR_s | PSR_c | PSR_x}, + {"CPSR_fxsc", true, PSR_f | PSR_x | PSR_s | PSR_c}, + {"CPSR_fxcs", true, PSR_f | PSR_x | PSR_c | PSR_s}, + {"CPSR_fcsx", true, PSR_f | PSR_c | PSR_s | PSR_x}, + {"CPSR_fcxs", true, PSR_f | PSR_c | PSR_x | PSR_s}, + {"CPSR_sfxc", true, PSR_s | PSR_f | PSR_x | PSR_c}, + {"CPSR_sfcx", true, PSR_s | PSR_f | PSR_c | PSR_x}, + {"CPSR_sxfc", true, PSR_s | PSR_x | PSR_f | PSR_c}, + {"CPSR_sxcf", true, PSR_s | PSR_x | PSR_c | PSR_f}, + {"CPSR_scfx", true, PSR_s | PSR_c | PSR_f | PSR_x}, + {"CPSR_scxf", true, PSR_s | PSR_c | PSR_x | PSR_f}, + {"CPSR_xfsc", true, PSR_x | PSR_f | PSR_s | PSR_c}, + {"CPSR_xfcs", true, PSR_x | PSR_f | PSR_c | PSR_s}, + {"CPSR_xsfc", true, PSR_x | PSR_s | PSR_f | PSR_c}, + {"CPSR_xscf", true, PSR_x | PSR_s | PSR_c | PSR_f}, + {"CPSR_xcfs", true, PSR_x | PSR_c | PSR_f | PSR_s}, + {"CPSR_xcsf", true, PSR_x | PSR_c | PSR_s | PSR_f}, + {"CPSR_cfsx", true, PSR_c | PSR_f | PSR_s | PSR_x}, + {"CPSR_cfxs", true, PSR_c | PSR_f | PSR_x | PSR_s}, + {"CPSR_csfx", true, PSR_c | PSR_s | PSR_f | PSR_x}, + {"CPSR_csxf", true, PSR_c | PSR_s | PSR_x | PSR_f}, + {"CPSR_cxfs", true, PSR_c | PSR_x | PSR_f | PSR_s}, + {"CPSR_cxsf", true, PSR_c | PSR_x | PSR_s | PSR_f}, + {"SPSR_fs", false, PSR_f | PSR_s}, + {"SPSR_fx", false, PSR_f | PSR_x}, + {"SPSR_fc", false, PSR_f | PSR_c}, + {"SPSR_sf", false, PSR_s | PSR_f}, + {"SPSR_sx", false, PSR_s | PSR_x}, + {"SPSR_sc", false, PSR_s | PSR_c}, + {"SPSR_xf", false, PSR_x | PSR_f}, + {"SPSR_xs", false, PSR_x | PSR_s}, + {"SPSR_xc", false, PSR_x | PSR_c}, + {"SPSR_cf", false, PSR_c | PSR_f}, + {"SPSR_cs", false, PSR_c | PSR_s}, + {"SPSR_cx", false, PSR_c | PSR_x}, + {"SPSR_fsx", false, PSR_f | PSR_s | PSR_x}, + {"SPSR_fsc", false, PSR_f | PSR_s | PSR_c}, + {"SPSR_fxs", false, PSR_f | PSR_x | PSR_s}, + {"SPSR_fxc", false, PSR_f | PSR_x | PSR_c}, + {"SPSR_fcs", false, PSR_f | PSR_c | PSR_s}, + {"SPSR_fcx", false, PSR_f | PSR_c | PSR_x}, + {"SPSR_sfx", false, PSR_s | PSR_f | PSR_x}, + {"SPSR_sfc", false, PSR_s | PSR_f | PSR_c}, + {"SPSR_sxf", false, PSR_s | PSR_x | PSR_f}, + {"SPSR_sxc", false, PSR_s | PSR_x | PSR_c}, + {"SPSR_scf", false, PSR_s | PSR_c | PSR_f}, + {"SPSR_scx", false, PSR_s | PSR_c | PSR_x}, + {"SPSR_xfs", false, PSR_x | PSR_f | PSR_s}, + {"SPSR_xfc", false, PSR_x | PSR_f | PSR_c}, + {"SPSR_xsf", false, PSR_x | PSR_s | PSR_f}, + {"SPSR_xsc", false, PSR_x | PSR_s | PSR_c}, + {"SPSR_xcf", false, PSR_x | PSR_c | PSR_f}, + {"SPSR_xcs", false, PSR_x | PSR_c | PSR_s}, + {"SPSR_cfs", false, PSR_c | PSR_f | PSR_s}, + {"SPSR_cfx", false, PSR_c | PSR_f | PSR_x}, + {"SPSR_csf", false, PSR_c | PSR_s | PSR_f}, + {"SPSR_csx", false, PSR_c | PSR_s | PSR_x}, + {"SPSR_cxf", false, PSR_c | PSR_x | PSR_f}, + {"SPSR_cxs", false, PSR_c | PSR_x | PSR_s}, + {"SPSR_fsxc", false, PSR_f | PSR_s | PSR_x | PSR_c}, + {"SPSR_fscx", false, PSR_f | PSR_s | PSR_c | PSR_x}, + {"SPSR_fxsc", false, PSR_f | PSR_x | PSR_s | PSR_c}, + {"SPSR_fxcs", false, PSR_f | PSR_x | PSR_c | PSR_s}, + {"SPSR_fcsx", false, PSR_f | PSR_c | PSR_s | PSR_x}, + {"SPSR_fcxs", false, PSR_f | PSR_c | PSR_x | PSR_s}, + {"SPSR_sfxc", false, PSR_s | PSR_f | PSR_x | PSR_c}, + {"SPSR_sfcx", false, PSR_s | PSR_f | PSR_c | PSR_x}, + {"SPSR_sxfc", false, PSR_s | PSR_x | PSR_f | PSR_c}, + {"SPSR_sxcf", false, PSR_s | PSR_x | PSR_c | PSR_f}, + {"SPSR_scfx", false, PSR_s | PSR_c | PSR_f | PSR_x}, + {"SPSR_scxf", false, PSR_s | PSR_c | PSR_x | PSR_f}, + {"SPSR_xfsc", false, PSR_x | PSR_f | PSR_s | PSR_c}, + {"SPSR_xfcs", false, PSR_x | PSR_f | PSR_c | PSR_s}, + {"SPSR_xsfc", false, PSR_x | PSR_s | PSR_f | PSR_c}, + {"SPSR_xscf", false, PSR_x | PSR_s | PSR_c | PSR_f}, + {"SPSR_xcfs", false, PSR_x | PSR_c | PSR_f | PSR_s}, + {"SPSR_xcsf", false, PSR_x | PSR_c | PSR_s | PSR_f}, + {"SPSR_cfsx", false, PSR_c | PSR_f | PSR_s | PSR_x}, + {"SPSR_cfxs", false, PSR_c | PSR_f | PSR_x | PSR_s}, + {"SPSR_csfx", false, PSR_c | PSR_s | PSR_f | PSR_x}, + {"SPSR_csxf", false, PSR_c | PSR_s | PSR_x | PSR_f}, + {"SPSR_cxfs", false, PSR_c | PSR_x | PSR_f | PSR_s}, + {"SPSR_cxsf", false, PSR_c | PSR_x | PSR_s | PSR_f}, /* For backwards compatability with older toolchain we also support lower case versions of some of these flags. */ {"cpsr", true, PSR_c | PSR_f},