Issue Details (XML | Word | Printable)

Key: PCC-363
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Anders Magnusson
Reporter: Iain Hibbert
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
pcc

ulltofp() refers to constant in wrong manner with -fPIC

Created: 25/Jun/11 10:07 PM   Updated: 01/Jul/11 05:25 PM
Component/s: i386 target
Affects Version/s: None
Fix Version/s: None

Environment: NetBSD/i386


 Description  « Hide
The ulltofp() function in local2.c emits code to convert from an unsigned long long value,
but when -fPIC is passed it refers to a constant in the wrong way.. the following snippet
shows the problem

float /* or double */
foo(unsigned long long a)
{
    return a;
}

when compiled with -fPIC produces

[...]
        .data
.L15: .long 0,0x80000000,0x403f
        .text
        pushl %edx
        pushl %eax
        fildq (%esp)
        addl $8,%esp
        cmpl $0,%edx
        jge .L16
        fldt .L15
        faddp %st,%st(1)
.L16:
[...]

and the fldt instruction should be using some kind of @GOTOFF notation?


 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Anders Magnusson added a comment - 01/Jul/11 05:25 PM
Fixed, thanks.