Just out of curiosity, I'm using [Compiler Explorer](https://godbolt.org) to see the assembly output of some simple C++ codes.

Consider the following [example](https://godbolt.org/g/c4h1s1)

```
int main(void){
    double x = -5.3;
}

```

Assembly output

```
main:
        push    rbp
        mov     rbp, rsp
        movsd   xmm0, QWORD PTR .LC0[rip]
        movsd   QWORD PTR [rbp-8], xmm0
        mov     eax, 0
        pop     rbp
        ret
.LC0:
        .long   858993459
        .long   -1072352461

```

I would like to understand how to use 

```
.LC0:
        .long   858993459
        .long   -1072352461

```

to get back my `-5.3`. 

My uninformed guess is that I need to merge the bit patterns of the two 32 bit integers and to interpret it as the bit pattern of a double precision floating point number. But how, exactly? Must I interpret the pattern as an IEEE754 double precision? In what order?