summaryrefslogtreecommitdiff
path: root/libavcodec/sparc
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-05-18 10:04:53 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-05-18 10:05:00 +0200
commitb53d6a47c51a54bb830de14fc742a9284f612745 (patch)
tree56f0c4cafc09026c36d4ad4f4c3c93eeb9249461 /libavcodec/sparc
parent5918b7ac4116a8d579269f0186f8dc78ed34d6df (diff)
parenta5a0ef5e13a59ff53318a45d77c5624b23229c6f (diff)
Merge commit 'a5a0ef5e13a59ff53318a45d77c5624b23229c6f'
* commit 'a5a0ef5e13a59ff53318a45d77c5624b23229c6f': jpegls: return meaningful errors sparc: VIS mnemonics Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/sparc')
-rw-r--r--libavcodec/sparc/vis.h36
1 files changed, 8 insertions, 28 deletions
diff --git a/libavcodec/sparc/vis.h b/libavcodec/sparc/vis.h
index 36985a1509..107ff96d8e 100644
--- a/libavcodec/sparc/vis.h
+++ b/libavcodec/sparc/vis.h
@@ -150,12 +150,9 @@ static inline int vis_level(void)
#define vis_m2r_2(op,mem1,mem2,rd) \
__asm__ volatile (#op "\t[%0 + %1], %%f" #rd : : "r" (mem1), "r" (mem2) )
-static inline void vis_set_gsr(unsigned int _val)
+static inline void vis_set_gsr(unsigned int val)
{
- register unsigned int val __asm__("g1");
-
- val = _val;
- __asm__ volatile(".word 0xa7804000"
+ __asm__ volatile("mov %0,%%asr19"
: : "r" (val));
}
@@ -208,36 +205,19 @@ static inline void vis_set_gsr(unsigned int _val)
/* Alignment instructions. */
-static inline const void *vis_alignaddr(const void *_ptr)
+static inline const void *vis_alignaddr(const void *ptr)
{
- register const void *ptr __asm__("g1");
-
- ptr = _ptr;
-
- __asm__ volatile(".word %2"
+ __asm__ volatile("alignaddr %0, %%g0, %0"
: "=&r" (ptr)
- : "0" (ptr),
- "i" (vis_opc_base | vis_opf(0x18) |
- vis_rs1_s(1) |
- vis_rs2_s(0) |
- vis_rd_s(1)));
+ : "0" (ptr));
return ptr;
}
-static inline void vis_alignaddr_g0(void *_ptr)
+static inline void vis_alignaddr_g0(void *ptr)
{
- register void *ptr __asm__("g1");
-
- ptr = _ptr;
-
- __asm__ volatile(".word %2"
- : "=&r" (ptr)
- : "0" (ptr),
- "i" (vis_opc_base | vis_opf(0x18) |
- vis_rs1_s(1) |
- vis_rs2_s(0) |
- vis_rd_s(0)));
+ __asm__ volatile("alignaddr %0, %%g0, %%g0"
+ : : "r" (ptr));
}
#define vis_faligndata(rs1,rs2,rd) vis_dd2d(0x48, rs1, rs2, rd)