qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/3] hw/net/e1000: Move macreg[] arrays to .rodata to save 1M


From: Dmitry Fleytman
Subject: Re: [PATCH 2/3] hw/net/e1000: Move macreg[] arrays to .rodata to save 1MiB of .data
Date: Thu, 5 Mar 2020 11:16:00 +0200

> On 5 Mar 2020, at 3:04, Philippe Mathieu-Daudé <address@hidden> wrote:
> 
> Each array consumes 256KiB of .data. As we do not reassign entries,
> we can move it to the .rodata section, and save a total of 1MiB of
> .data (size reported on x86_64 host).
> 
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>


Reviewed-by: Dmitry Fleytman <address@hidden>


> ---
> hw/net/e1000.c       | 4 ++--
> hw/net/e1000e_core.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/net/e1000.c b/hw/net/e1000.c
> index 972d9b5083..9233248c9a 100644
> --- a/hw/net/e1000.c
> +++ b/hw/net/e1000.c
> @@ -1151,7 +1151,7 @@ set_ims(E1000State *s, int index, uint32_t val)
> 
> #define getreg(x)    [x] = mac_readreg
> typedef uint32_t (*readops)(E1000State *, int);
> -static readops macreg_readops[] = {
> +static const readops macreg_readops[] = {
>     getreg(PBA),      getreg(RCTL),     getreg(TDH),      getreg(TXDCTL),
>     getreg(WUFC),     getreg(TDT),      getreg(CTRL),     getreg(LEDCTL),
>     getreg(MANC),     getreg(MDIC),     getreg(SWSM),     getreg(STATUS),
> @@ -1207,7 +1207,7 @@ enum { NREADOPS = ARRAY_SIZE(macreg_readops) };
> 
> #define putreg(x)    [x] = mac_writereg
> typedef void (*writeops)(E1000State *, int, uint32_t);
> -static writeops macreg_writeops[] = {
> +static const writeops macreg_writeops[] = {
>     putreg(PBA),      putreg(EERD),     putreg(SWSM),     putreg(WUFC),
>     putreg(TDBAL),    putreg(TDBAH),    putreg(TXDCTL),   putreg(RDBAH),
>     putreg(RDBAL),    putreg(LEDCTL),   putreg(VET),      putreg(FCRUC),
> diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
> index 38bdb90114..df957e0c1a 100644
> --- a/hw/net/e1000e_core.c
> +++ b/hw/net/e1000e_core.c
> @@ -2856,7 +2856,7 @@ e1000e_set_gcr(E1000ECore *core, int index, uint32_t 
> val)
> 
> #define e1000e_getreg(x)    [x] = e1000e_mac_readreg
> typedef uint32_t (*readops)(E1000ECore *, int);
> -static readops e1000e_macreg_readops[] = {
> +static const readops e1000e_macreg_readops[] = {
>     e1000e_getreg(PBA),
>     e1000e_getreg(WUFC),
>     e1000e_getreg(MANC),
> @@ -3063,7 +3063,7 @@ enum { E1000E_NREADOPS = 
> ARRAY_SIZE(e1000e_macreg_readops) };
> 
> #define e1000e_putreg(x)    [x] = e1000e_mac_writereg
> typedef void (*writeops)(E1000ECore *, int, uint32_t);
> -static writeops e1000e_macreg_writeops[] = {
> +static const writeops e1000e_macreg_writeops[] = {
>     e1000e_putreg(PBA),
>     e1000e_putreg(SWSM),
>     e1000e_putreg(WUFC),
> -- 
> 2.21.1
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]