[Mono-dev] [patch 4/5] Instruction selection for architectures without conditional flags

Randolph Chung randolph at tausq.org
Thu May 31 17:06:51 EDT 2007


On hppa (and MIPS) there are no separately addressable condition flags
for a compare operation. HPPA and MIPS have "compare and branch"
instructions instead. There is already some infrastructure in place from
the MIPS port to handle this. This patch mostly updates
inssel-long32.brg so that it uses compare-and-branch macros when
emitting code so that architectures that need to do these as a combined
operation can do so. This avoids having the hppa port create a
inssel-long32-hppa.brg file that is mostly the same as
inssel-long32.brg. A few costs values are also updated to make it more
clear that some rules may be overloaded per architecture.

Also in inssel.brg I've added some "CHAINED" rules -- these are used on
architectures that have *separate* compare-and-set-conditional-flag and
branch instructions so that a single compare op can affect two branch
ops. This more closely mimicks the existing behavior, allows better code
generation, and in fact appears to be required on some architectures.
This was regression tested on x86.

Please apply if ok.

randolph

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mono-hppa-inssel.diff
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20070601/04715111/attachment.pl 


More information about the Mono-devel-list mailing list