On 11/17/23 01:27, John David Anglin wrote:
On 2023-11-16 10:00 p.m., Jeff Law wrote:
I'm not seeing any obvious problems in the gcc testsuite.  It needs testing on 
packages that do extensive
floating point calculations.
OK, I'll focus on those.
THe more likely scenario is xmpy which is used for integer multiply, but the operands have to be moved into FP registers because the operation happens in the FPU.
There are lots of xmpyu instructions in cc1 and cc1plus.  For example,

   9fee8c:       08 03 02 5c     copy r3,ret0
   9fee90:       37 9c 00 20     ldo 10(ret0),ret0
   9fee94:       27 80 10 17     fldw 0(ret0),fr23
   9fee98:       08 03 02 5c     copy r3,ret0
   9fee9c:       37 9c 00 28     ldo 14(ret0),ret0
   9feea0:       27 80 10 16     fldw 0(ret0),fr22
   9feea4:       3a f6 47 18     xmpyu fr23,fr22,fr24
   9feea8:       2f c1 12 18     fstd fr24,-10(sp)
   9feeac:       0f c1 10 9c     ldw -10(sp),ret0
   9feeb0:       0f c9 10 9d     ldw -c(sp),ret1

There are 2169 xmpyu instructions in cc1plus in my current gcc bootstrap on linux.
Yea, and as I said, it'll likely work for quite a while until you get 
spills in just the right scenario.  We ran bootstraps, OS builds (our 
BSD and Mach systems), spec89, spec92, etc.  Eventually it breaks :(

jeff

Reply via email to