OPTIM: epoll: use a temp variable for intermediary flag computations

Playing with fdtab[fd].ev makes gcc constantly reload the pointers
because it does not know they don't alias. Use a temporary variable
instead. This saves a few operations in the fast path.
diff --git a/src/ev_epoll.c b/src/ev_epoll.c
index a9b8410..b858e18 100644
--- a/src/ev_epoll.c
+++ b/src/ev_epoll.c
@@ -137,7 +137,8 @@
 	/* process polled events */
 
 	for (count = 0; count < status; count++) {
-		int e = epoll_events[count].events;
+		unsigned char n;
+		unsigned char e = epoll_events[count].events;
 		fd = epoll_events[count].data.fd;
 
 		if (!fdtab[fd].owner)
@@ -150,18 +151,22 @@
 		if (EPOLLIN == FD_POLL_IN && EPOLLOUT == FD_POLL_OUT &&
 		    EPOLLPRI == FD_POLL_PRI && EPOLLERR == FD_POLL_ERR &&
 		    EPOLLHUP == FD_POLL_HUP) {
-			fdtab[fd].ev |= e & (EPOLLIN|EPOLLOUT|EPOLLPRI|EPOLLERR|EPOLLHUP);
+			n = e & (EPOLLIN|EPOLLOUT|EPOLLPRI|EPOLLERR|EPOLLHUP);
 		}
 		else {
-			fdtab[fd].ev |=
-				((e & EPOLLIN ) ? FD_POLL_IN  : 0) |
+			n =	((e & EPOLLIN ) ? FD_POLL_IN  : 0) |
 				((e & EPOLLPRI) ? FD_POLL_PRI : 0) |
 				((e & EPOLLOUT) ? FD_POLL_OUT : 0) |
 				((e & EPOLLERR) ? FD_POLL_ERR : 0) |
 				((e & EPOLLHUP) ? FD_POLL_HUP : 0);
 		}
 
-		if (fdtab[fd].iocb && fdtab[fd].ev) {
+		if (!n)
+			continue;
+
+		fdtab[fd].ev |= n;
+
+		if (fdtab[fd].iocb) {
 			int new_updt, old_updt = fd_nbupdt; /* Save number of updates to detect creation of new FDs. */
 
 			/* Mark the events as speculative before processing