162306a36Sopenharmony_ci#ifndef _ASM_POWERPC_ASM_COMPAT_H
262306a36Sopenharmony_ci#define _ASM_POWERPC_ASM_COMPAT_H
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include <asm/asm-const.h>
562306a36Sopenharmony_ci#include <asm/types.h>
662306a36Sopenharmony_ci#include <asm/ppc-opcode.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifdef __powerpc64__
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/* operations for longs and pointers */
1162306a36Sopenharmony_ci#define PPC_LL		stringify_in_c(ld)
1262306a36Sopenharmony_ci#define PPC_STL		stringify_in_c(std)
1362306a36Sopenharmony_ci#define PPC_STLU	stringify_in_c(stdu)
1462306a36Sopenharmony_ci#define PPC_LCMPI	stringify_in_c(cmpdi)
1562306a36Sopenharmony_ci#define PPC_LCMPLI	stringify_in_c(cmpldi)
1662306a36Sopenharmony_ci#define PPC_LCMP	stringify_in_c(cmpd)
1762306a36Sopenharmony_ci#define PPC_LONG	stringify_in_c(.8byte)
1862306a36Sopenharmony_ci#define PPC_LONG_ALIGN	stringify_in_c(.balign 8)
1962306a36Sopenharmony_ci#define PPC_TLNEI	stringify_in_c(tdnei)
2062306a36Sopenharmony_ci#define PPC_LLARX	stringify_in_c(ldarx)
2162306a36Sopenharmony_ci#define PPC_STLCX	stringify_in_c(stdcx.)
2262306a36Sopenharmony_ci#define PPC_CNTLZL	stringify_in_c(cntlzd)
2362306a36Sopenharmony_ci#define PPC_MTOCRF(FXM, RS) MTOCRF((FXM), RS)
2462306a36Sopenharmony_ci#define PPC_SRL		stringify_in_c(srd)
2562306a36Sopenharmony_ci#define PPC_LR_STKOFF	16
2662306a36Sopenharmony_ci#define PPC_MIN_STKFRM	112
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci#ifdef __BIG_ENDIAN__
2962306a36Sopenharmony_ci#define LHZX_BE	stringify_in_c(lhzx)
3062306a36Sopenharmony_ci#define LWZX_BE	stringify_in_c(lwzx)
3162306a36Sopenharmony_ci#define LDX_BE	stringify_in_c(ldx)
3262306a36Sopenharmony_ci#define STWX_BE	stringify_in_c(stwx)
3362306a36Sopenharmony_ci#define STDX_BE	stringify_in_c(stdx)
3462306a36Sopenharmony_ci#else
3562306a36Sopenharmony_ci#define LHZX_BE	stringify_in_c(lhbrx)
3662306a36Sopenharmony_ci#define LWZX_BE	stringify_in_c(lwbrx)
3762306a36Sopenharmony_ci#define LDX_BE	stringify_in_c(ldbrx)
3862306a36Sopenharmony_ci#define STWX_BE	stringify_in_c(stwbrx)
3962306a36Sopenharmony_ci#define STDX_BE	stringify_in_c(stdbrx)
4062306a36Sopenharmony_ci#endif
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci#else /* 32-bit */
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci/* operations for longs and pointers */
4562306a36Sopenharmony_ci#define PPC_LL		stringify_in_c(lwz)
4662306a36Sopenharmony_ci#define PPC_STL		stringify_in_c(stw)
4762306a36Sopenharmony_ci#define PPC_STLU	stringify_in_c(stwu)
4862306a36Sopenharmony_ci#define PPC_LCMPI	stringify_in_c(cmpwi)
4962306a36Sopenharmony_ci#define PPC_LCMPLI	stringify_in_c(cmplwi)
5062306a36Sopenharmony_ci#define PPC_LCMP	stringify_in_c(cmpw)
5162306a36Sopenharmony_ci#define PPC_LONG	stringify_in_c(.long)
5262306a36Sopenharmony_ci#define PPC_LONG_ALIGN	stringify_in_c(.balign 4)
5362306a36Sopenharmony_ci#define PPC_TLNEI	stringify_in_c(twnei)
5462306a36Sopenharmony_ci#define PPC_LLARX	stringify_in_c(lwarx)
5562306a36Sopenharmony_ci#define PPC_STLCX	stringify_in_c(stwcx.)
5662306a36Sopenharmony_ci#define PPC_CNTLZL	stringify_in_c(cntlzw)
5762306a36Sopenharmony_ci#define PPC_MTOCRF	stringify_in_c(mtcrf)
5862306a36Sopenharmony_ci#define PPC_SRL		stringify_in_c(srw)
5962306a36Sopenharmony_ci#define PPC_LR_STKOFF	4
6062306a36Sopenharmony_ci#define PPC_MIN_STKFRM	16
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci#endif
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci#endif /* _ASM_POWERPC_ASM_COMPAT_H */
65