|
@@ -199,14 +199,15 @@ static inline int ecctr(u64 ctr, u64 *val)
|
|
/* Store CPU counter multiple for the MT utilization counter set */
|
|
/* Store CPU counter multiple for the MT utilization counter set */
|
|
static inline int stcctm5(u64 num, u64 *val)
|
|
static inline int stcctm5(u64 num, u64 *val)
|
|
{
|
|
{
|
|
- typedef struct { u64 _[num]; } addrtype;
|
|
|
|
int cc;
|
|
int cc;
|
|
|
|
|
|
asm volatile (
|
|
asm volatile (
|
|
" .insn rsy,0xeb0000000017,%2,5,%1\n"
|
|
" .insn rsy,0xeb0000000017,%2,5,%1\n"
|
|
" ipm %0\n"
|
|
" ipm %0\n"
|
|
" srl %0,28\n"
|
|
" srl %0,28\n"
|
|
- : "=d" (cc), "=Q" (*(addrtype *) val) : "d" (num) : "cc");
|
|
|
|
|
|
+ : "=d" (cc)
|
|
|
|
+ : "Q" (*val), "d" (num)
|
|
|
|
+ : "cc", "memory");
|
|
return cc;
|
|
return cc;
|
|
}
|
|
}
|
|
|
|
|