On Mon, Aug 19, 2019 at 01:58:12PM +0000, Christophe Leroy wrote:
> -#define LOAD_REG_IMMEDIATE_SYM(reg,expr)     \
> -     lis     reg,(expr)@highest;             \
> -     ori     reg,reg,(expr)@higher;  \
> -     rldicr  reg,reg,32,31;          \
> -     oris    reg,reg,(expr)@__AS_ATHIGH;     \
> -     ori     reg,reg,(expr)@l;
> +#define LOAD_REG_IMMEDIATE_SYM(reg, tmp, expr)       \
> +     lis     reg, (expr)@highest;            \
> +     lis     tmp, (expr)@__AS_ATHIGH;        \
> +     ori     reg, reg, (expr)@higher;        \
> +     ori     tmp, reg, (expr)@l;             \
> +     rldimi  reg, tmp, 32, 0

That should be

#define LOAD_REG_IMMEDIATE_SYM(reg, tmp, expr)  \
        lis     tmp, (expr)@highest;            \
        ori     tmp, tmp, (expr)@higher;        \
        lis     reg, (expr)@__AS_ATHIGH;        \
        ori     reg, reg, (expr)@l;             \
        rldimi  reg, tmp, 32, 0

(tmp is the high half, reg is the low half, as inputs to that rldimi).


Segher

Reply via email to