Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

RE: gcc issues.



On Tuesday, December 3, 2019 at 9:57 AM, Paul Koning wrote:
> > On Dec 3, 2019, at 12:14 AM, Mark Pizzolato <Mark%infocomm.com@localhost> wrote:
> >
> > On Monday, December 2, 2019 at 4:58 PM Paul Koning wrote:
> >> A possible solution may be to get the current version.  I don't know
> >> if a lot of work has been done on fixing VAX port issues, but I
> >> believe there has been some activity.
> >>
> >> Reporting the issue via the GCC bug tracker may be a good idea.  As
> >> the report says, this is a compiler bug.  Specifically, it's
> >> generating an intermediate code operation (RTL operation) for which
> >> the back end definitions don't supply corresponding machine code.
> >>
> >> It looks like it wants to generate a CVTQL foo[Rn], Rm -- but that's
> >> not a VAX opcode.  What produces this and how to tell it not to I don't
> >> remember.
> >
> > That would look like it's trying to manipulate a "long long" value.  Maybe
> > someone thought the VAX could do 64bit integer things...  Maybe the fix is to
> > explicitly support 64bit operations via library calls as is done with x86 mode.
> >
> > - Mark
> 
> Yes, it does seem related to 64 bit operations, and the presence of indexing
> would suggest it's an array reference.  Might be worth some fiddling around
> with small tests to see if a simple reproducer can be found.
> 
> GCC for VAX does support 64 bit arithmetic, by generating the necessary
> sequence of instructions in line (not via library calls, at least not for stuff like 64
> bit integer add).

My only relevant experience was troubleshooting a problem with the Microsoft
C++ compiler's x86 mode when linking against SDL2 as a static library.   For some 
reason, on Windows the SDL distribution supplied its own 64bit library routines for 
multiply and divide rather than using the Microsoft supplied routines.  One of these
had an implementation bug.  I didn't look closely at other 64bit operations (add, 
and subtract) but it would seem reasonable that those would be done inline like 
the GCC vax case.

- Mark



Home | Main Index | Thread Index | Old Index