mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
target/sparc: Implement FMEAN16
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
1d3ed3d728
commit
d6ff1ccb45
4 changed files with 53 additions and 0 deletions
|
@ -412,3 +412,24 @@ uint64_t helper_fchksm16(uint64_t src1, uint64_t src2)
|
|||
|
||||
return r.ll;
|
||||
}
|
||||
|
||||
static inline int16_t do_fmean16(int16_t src1, int16_t src2)
|
||||
{
|
||||
return (src1 + src2 + 1) / 2;
|
||||
}
|
||||
|
||||
uint64_t helper_fmean16(uint64_t src1, uint64_t src2)
|
||||
{
|
||||
VIS64 r, s1, s2;
|
||||
|
||||
s1.ll = src1;
|
||||
s2.ll = src2;
|
||||
r.ll = 0;
|
||||
|
||||
r.VIS_SW64(0) = do_fmean16(s1.VIS_SW64(0), s2.VIS_SW64(0));
|
||||
r.VIS_SW64(1) = do_fmean16(s1.VIS_SW64(1), s2.VIS_SW64(1));
|
||||
r.VIS_SW64(2) = do_fmean16(s1.VIS_SW64(2), s2.VIS_SW64(2));
|
||||
r.VIS_SW64(3) = do_fmean16(s1.VIS_SW64(3), s2.VIS_SW64(3));
|
||||
|
||||
return r.ll;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue