Merge commit 'a5a0ef5e13a59ff53318a45d77c5624b23229c6f'
* commit 'a5a0ef5e13a59ff53318a45d77c5624b23229c6f': jpegls: return meaningful errors sparc: VIS mnemonics Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user