Richard Sandiford <rdsandif...@googlemail.com> writes:
> Matthew Fortune <matthew.fort...@imgtec.com> writes:
> > As it stands I wasn't planning on supporting .module arch= I was just
> > going to add .module fp= and leave it at that. The only thing I need
> > to give assembly code writers absolute control over is the overall FP
> > mode of the module. I don't currently see any real need to increase
> > the control a user has over architecture level. If we had .module
> > arch= then having it just set the arch ignorant of FP mode seems fine,
> > checking for erroneous combinations would be difficult due to some
> > chicken and egg scenarios. Do you think I need to add .module arch= if
> > I add .module fp= or can I take the easy option?
> 
> Despite the "arch controlling fp" difference, I think .set and .module
> should use common parsing code.  I.e. we should generalise s_mipsset to
> handle both of them rather than write a second parsing function for
> .module.
> There will be some cases where the function has to check "is this .set?"
> (e.g. push/pop), but that's good IMO, because it makes the differences
> obvious.
> 
> If we do have a common routine then we should make .module handle
> everything it can handle rather than just fp=.

Every case would need to look at set vs module as .set writes to mips_opts and 
.module writes to things like file_mips_arch? I suppose I could just rework all 
the global options to be part of a single mips_set_options structure to 
abstract this. Does that sound OK? The push/pop case (and perhaps some others) 
will still need special handling to prohibit them for .module.

Back to one of your questions discussing things like:

.module fp=xx
.module arch=mips2

An easy option would be to continue to have the arch options infer fp32 or fp64 
and require the .module fp=xx to come second. Then we just have error checking 
on the .module fp= option to ensure it is suitable for use with the previously 
specified architecture.

With .module in place like this then I expect the compiler should then start to 
record more information in the assembly text to indicate things like arch as 
well as fp. Obviously this will be tied to a configure time assembler feature 
test.

Regards,
Matthew

Reply via email to