Revision 3cd7d1dd target-ppc/op_helper.c
b/target-ppc/op_helper.c | ||
---|---|---|
1853 | 1853 |
T0 = i; |
1854 | 1854 |
} |
1855 | 1855 |
|
1856 |
#if defined(TARGET_PPCEMB) |
|
1857 | 1856 |
/* SPE extension helpers */ |
1858 | 1857 |
/* Use a table to make this quicker */ |
1859 | 1858 |
static uint8_t hbrev[16] = { |
... | ... | |
1872 | 1871 |
(byte_reverse(val >> 8) << 16) | (byte_reverse(val) << 24); |
1873 | 1872 |
} |
1874 | 1873 |
|
1875 |
#define MASKBITS 16 // Random value - to be fixed |
|
1874 |
#define MASKBITS 16 // Random value - to be fixed (implementation dependant)
|
|
1876 | 1875 |
void do_brinc (void) |
1877 | 1876 |
{ |
1878 | 1877 |
uint32_t a, b, d, mask; |
1879 | 1878 |
|
1880 |
mask = UINT32_MAX >> MASKBITS;
|
|
1881 |
b = T1_64 & mask;
|
|
1882 |
a = T0_64 & mask;
|
|
1883 |
d = word_reverse(1 + word_reverse(a | ~mask));
|
|
1884 |
T0_64 = (T0_64 & ~mask) | (d & mask);
|
|
1879 |
mask = UINT32_MAX >> (32 - MASKBITS);
|
|
1880 |
a = T0 & mask;
|
|
1881 |
b = T1 & mask;
|
|
1882 |
d = word_reverse(1 + word_reverse(a | ~b));
|
|
1883 |
T0 = (T0 & ~mask) | (d & b);
|
|
1885 | 1884 |
} |
1886 | 1885 |
|
1887 | 1886 |
#define DO_SPE_OP2(name) \ |
... | ... | |
2713 | 2712 |
DO_SPE_OP1(fsctsf); |
2714 | 2713 |
/* evfsctuf */ |
2715 | 2714 |
DO_SPE_OP1(fsctuf); |
2716 |
#endif /* defined(TARGET_PPCEMB) */ |
|
2717 | 2715 |
|
2718 | 2716 |
/*****************************************************************************/ |
2719 | 2717 |
/* Softmmu support */ |
Also available in: Unified diff