mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
ppc: Define SETFIELD for the ppc target
It keeps repeating, move it to the header. This uses __builtin_ffsll() to allow using the macros in #define. This is not using the QEMU's FIELD macros as this would require changing all such macros found in skiboot (the PPC PowerNV firmware). Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220628080544.1509428-1-aik@ozlabs.ru> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
b7d30fae5b
commit
95444afcab
5 changed files with 12 additions and 72 deletions
|
@ -12,22 +12,6 @@
|
|||
|
||||
#include "qemu/host-utils.h"
|
||||
|
||||
/*
|
||||
* QEMU version of the GETFIELD/SETFIELD macros
|
||||
*
|
||||
* These are common with the PnvXive model.
|
||||
*/
|
||||
static inline uint64_t GETFIELD(uint64_t mask, uint64_t word)
|
||||
{
|
||||
return (word & mask) >> ctz64(mask);
|
||||
}
|
||||
|
||||
static inline uint64_t SETFIELD(uint64_t mask, uint64_t word,
|
||||
uint64_t value)
|
||||
{
|
||||
return (word & ~mask) | ((value << ctz64(mask)) & mask);
|
||||
}
|
||||
|
||||
/*
|
||||
* PBCQ XSCOM registers
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue