Re: [PATCH] XOR uses

From: Marcelo Araujo <araujobsdport_at_gmail.com>
Date: Tue, 8 Dec 2015 12:40:25 +0800
Hi Michael,

What would be the advantage of it?
I still prefer explicit than implicit. The current code is much more
readable.

Best,

2015-12-08 11:13 GMT+08:00 Michael McConville <mmcco_at_mykolab.com>:

> A minor simplification patch:
>
>
> Index: sys/arm/allwinner/a10_gpio.c
> ===================================================================
> --- sys/arm/allwinner/a10_gpio.c        (revision 291978)
> +++ sys/arm/allwinner/a10_gpio.c        (working copy)
> _at__at_ -356,10 +356,7 _at__at_
>         sc = device_get_softc(dev);
>         A10_GPIO_LOCK(sc);
>         data = A10_GPIO_READ(sc, A10_GPIO_GP_DAT(bank));
> -       if (data & (1 << pin))
> -               data &= ~(1 << pin);
> -       else
> -               data |= (1 << pin);
> +       data ^= (1 << pin);
>         A10_GPIO_WRITE(sc, A10_GPIO_GP_DAT(bank), data);
>         A10_GPIO_UNLOCK(sc);
>
> Index: sys/arm/altera/socfpga/socfpga_gpio.c
> ===================================================================
> --- sys/arm/altera/socfpga/socfpga_gpio.c       (revision 291978)
> +++ sys/arm/altera/socfpga/socfpga_gpio.c       (working copy)
> _at__at_ -336,10 +336,7 _at__at_
>
>         GPIO_LOCK(sc);
>         reg = READ4(sc, GPIO_SWPORTA_DR);
> -       if (reg & (1 << i))
> -               reg &= ~(1 << i);
> -       else
> -               reg |= (1 << i);
> +       reg ^= (1 << i);
>         WRITE4(sc, GPIO_SWPORTA_DR, reg);
>         GPIO_UNLOCK(sc);
>
> Index: sys/arm/rockchip/rk30xx_gpio.c
> ===================================================================
> --- sys/arm/rockchip/rk30xx_gpio.c      (revision 291978)
> +++ sys/arm/rockchip/rk30xx_gpio.c      (working copy)
> _at__at_ -375,10 +375,7 _at__at_
>                 return (EINVAL);
>         RK30_GPIO_LOCK(sc);
>         data = RK30_GPIO_READ(sc, RK30_GPIO_SWPORT_DR);
> -       if (data & (1U << pin))
> -               data &= ~(1U << pin);
> -       else
> -               data |= (1U << pin);
> +       data ^= (1U << pin);
>         RK30_GPIO_WRITE(sc, RK30_GPIO_SWPORT_DR, data);
>         RK30_GPIO_UNLOCK(sc);
>
> Index: sys/arm/samsung/exynos/exynos5_pad.c
> ===================================================================
> --- sys/arm/samsung/exynos/exynos5_pad.c        (revision 291978)
> +++ sys/arm/samsung/exynos/exynos5_pad.c        (working copy)
> _at__at_ -722,10 +722,7 _at__at_
>
>         GPIO_LOCK(sc);
>         reg = READ4(sc, bank.port, bank.con + 0x4);
> -       if (reg & (1 << pin_shift))
> -               reg &= ~(1 << pin_shift);
> -       else
> -               reg |= (1 << pin_shift);
> +       reg ^= (1 << pin_shift);
>         WRITE4(sc, bank.port, bank.con + 0x4, reg);
>         GPIO_UNLOCK(sc);
>
> Index: sys/dev/nand/nandsim_ctrl.c
> ===================================================================
> --- sys/dev/nand/nandsim_ctrl.c (revision 291978)
> +++ sys/dev/nand/nandsim_ctrl.c (working copy)
> _at__at_ -388,9 +388,6 _at__at_
>         rand = random();
>         if ((rand % 1000000) < chip->error_ratio) {
>                 bit = rand % 8;
> -               if (*byte & (1 << bit))
> -                       *byte &= ~(1 << bit);
> -               else
> -                       *byte |= (1 << bit);
> +               *byte ^= (1 << bit);
>         }
>  }
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>



-- 

-- 
Marcelo Araujo            (__)araujo_at_FreeBSD.org
\\\'',)http://www.FreeBSD.org <http://www.freebsd.org/>   \/  \ ^
Power To Server.         .\. /_)
Received on Tue Dec 08 2015 - 03:40:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC