diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-10 19:57:13 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-10 19:57:13 +0000 |
commit | 1d01299d29184c2d48af843626e0d7a5ef21aef7 (patch) | |
tree | 0831269efd6983ca71bea162f66cddd03cd2d278 /target-sparc/op_helper.c | |
parent | 714547bbc7db79a1d7e6544bf90c9ee1073d6881 (diff) | |
download | qemu-1d01299d29184c2d48af843626e0d7a5ef21aef7.zip qemu-1d01299d29184c2d48af843626e0d7a5ef21aef7.tar.gz qemu-1d01299d29184c2d48af843626e0d7a5ef21aef7.tar.bz2 |
Convert basic 32 bit VIS ops to TCG
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5190 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc/op_helper.c')
-rw-r--r-- | target-sparc/op_helper.c | 81 |
1 files changed, 8 insertions, 73 deletions
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c index 84ed6f6..895e7ec 100644 --- a/target-sparc/op_helper.c +++ b/target-sparc/op_helper.c @@ -246,116 +246,51 @@ void helper_faligndata(void) *((uint64_t *)&DT0) = tmp; } -void helper_movl_FT0_0(void) -{ - *((uint32_t *)&FT0) = 0; -} - -void helper_movl_DT0_0(void) -{ - *((uint64_t *)&DT0) = 0; -} - -void helper_movl_FT0_1(void) -{ - *((uint32_t *)&FT0) = 0xffffffff; -} - -void helper_movl_DT0_1(void) -{ - *((uint64_t *)&DT0) = 0xffffffffffffffffULL; -} - void helper_fnot(void) { *(uint64_t *)&DT0 = ~*(uint64_t *)&DT1; } -void helper_fnots(void) -{ - *(uint32_t *)&FT0 = ~*(uint32_t *)&FT1; -} - void helper_fnor(void) { *(uint64_t *)&DT0 = ~(*(uint64_t *)&DT0 | *(uint64_t *)&DT1); } -void helper_fnors(void) -{ - *(uint32_t *)&FT0 = ~(*(uint32_t *)&FT0 | *(uint32_t *)&FT1); -} - void helper_for(void) { *(uint64_t *)&DT0 |= *(uint64_t *)&DT1; } -void helper_fors(void) -{ - *(uint32_t *)&FT0 |= *(uint32_t *)&FT1; -} - void helper_fxor(void) { *(uint64_t *)&DT0 ^= *(uint64_t *)&DT1; } -void helper_fxors(void) -{ - *(uint32_t *)&FT0 ^= *(uint32_t *)&FT1; -} - void helper_fand(void) { *(uint64_t *)&DT0 &= *(uint64_t *)&DT1; } -void helper_fands(void) -{ - *(uint32_t *)&FT0 &= *(uint32_t *)&FT1; -} - void helper_fornot(void) { *(uint64_t *)&DT0 = *(uint64_t *)&DT0 | ~*(uint64_t *)&DT1; } -void helper_fornots(void) -{ - *(uint32_t *)&FT0 = *(uint32_t *)&FT0 | ~*(uint32_t *)&FT1; -} - void helper_fandnot(void) { *(uint64_t *)&DT0 = *(uint64_t *)&DT0 & ~*(uint64_t *)&DT1; } -void helper_fandnots(void) -{ - *(uint32_t *)&FT0 = *(uint32_t *)&FT0 & ~*(uint32_t *)&FT1; -} - void helper_fnand(void) { *(uint64_t *)&DT0 = ~(*(uint64_t *)&DT0 & *(uint64_t *)&DT1); } -void helper_fnands(void) -{ - *(uint32_t *)&FT0 = ~(*(uint32_t *)&FT0 & *(uint32_t *)&FT1); -} - void helper_fxnor(void) { *(uint64_t *)&DT0 ^= ~*(uint64_t *)&DT1; } -void helper_fxnors(void) -{ - *(uint32_t *)&FT0 ^= ~*(uint32_t *)&FT1; -} - #ifdef WORDS_BIGENDIAN #define VIS_B64(n) b[7 - (n)] #define VIS_W64(n) w[3 - (n)] @@ -597,17 +532,17 @@ void helper_fexpand(void) DT0 = d.d; \ } \ \ - void name##16s(void) \ + uint32_t name##16s(uint32_t src1, uint32_t src2) \ { \ vis32 s, d; \ \ - s.f = FT0; \ - d.f = FT1; \ + s.l = src1; \ + d.l = src2; \ \ d.VIS_W32(0) = F(d.VIS_W32(0), s.VIS_W32(0)); \ d.VIS_W32(1) = F(d.VIS_W32(1), s.VIS_W32(1)); \ \ - FT0 = d.f; \ + return d.l; \ } \ \ void name##32(void) \ @@ -623,16 +558,16 @@ void helper_fexpand(void) DT0 = d.d; \ } \ \ - void name##32s(void) \ + uint32_t name##32s(uint32_t src1, uint32_t src2) \ { \ vis32 s, d; \ \ - s.f = FT0; \ - d.f = FT1; \ + s.l = src1; \ + d.l = src2; \ \ d.l = F(d.l, s.l); \ \ - FT0 = d.f; \ + return d.l; \ } #define FADD(a, b) ((a) + (b)) |