aboutsummaryrefslogtreecommitdiff
path: root/target-sparc/op_helper.c
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-10 19:57:13 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-10 19:57:13 +0000
commit1d01299d29184c2d48af843626e0d7a5ef21aef7 (patch)
tree0831269efd6983ca71bea162f66cddd03cd2d278 /target-sparc/op_helper.c
parent714547bbc7db79a1d7e6544bf90c9ee1073d6881 (diff)
downloadqemu-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.c81
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))