On 10/24/2013 09:37 AM, Richard Earnshaw wrote: > It still needs to put out the right final condition based on the > comparisons that were previously done. At least traditionaly (in the > existing ARM code) the comparison was just EQ or NE even if the original > tests were inequalities; so the only way to convey the real comparison > information was through the condition code (where select_cc_mode could > work out what was really needed). > > I guess if the branch had more information about the comparison, then > the need to encode information through CC mode; but it's always been the > case that the CC mode can modify the final branch condition needed in > the instruction -- consider for example use of bpl vs bge for > non-overflowing >= 0 tests.
Yes, the arm flags are not so dissimilar to i386 flags in that way. In the i386 port, we do use the "real" comparison code plus a CCmode in order to select between branches. I missed the fact that these modes are pre-existing in the arm backend, wrongly assuming that the ccmp patches were adding them. Thus all my comments on the subject are spurious. r~