[PATCH] XOR uses

Michael McConville mmcco at mykolab.com
Tue Dec 8 03:23:43 UTC 2015


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)
@@ -356,10 +356,7 @@
 	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)
@@ -336,10 +336,7 @@
 
 	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)
@@ -375,10 +375,7 @@
 		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)
@@ -722,10 +722,7 @@
 
 	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)
@@ -388,9 +388,6 @@
 	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);
 	}
 }


More information about the freebsd-current mailing list