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