Revision e909ec2f target-sparc/op_mem.h

b/target-sparc/op_mem.h
36 36

  
37 37
void OPPROTO glue(op_std, MEMSUFFIX)(void)
38 38
{
39
    glue(stl, MEMSUFFIX)(ADDR(T0), T1);
40
    glue(stl, MEMSUFFIX)((ADDR(T0 + 4)), T2);
39
    uint64_t tmp = ((uint64_t)T1 << 32) | (uint64_t)(T2 & 0xffffffff);
40

  
41
    glue(stq, MEMSUFFIX)(ADDR(T0), tmp);
41 42
}
42 43

  
43 44
void OPPROTO glue(op_ldstub, MEMSUFFIX)(void)
......
55 56

  
56 57
void OPPROTO glue(op_ldd, MEMSUFFIX)(void)
57 58
{
58
    T1 = glue(ldl, MEMSUFFIX)(ADDR(T0));
59
    T0 = glue(ldl, MEMSUFFIX)((ADDR(T0 + 4)));
59
    uint64_t tmp;
60

  
61
    tmp = glue(ldq, MEMSUFFIX)(ADDR(T0));
62
    T1 = tmp >> 32;
63
    T0 = tmp & 0xffffffff;
60 64
}
61 65

  
62 66
/***                         Floating-point store                          ***/

Also available in: Unified diff