]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
Xilinx: Axi Ethernet Driver: Optimize BD numbers
authorMichal Simek <monstr@monstr.eu>
Sun, 2 Oct 2011 13:10:31 +0000 (15:10 +0200)
committerJohn Linn <john.linn@xilinx.com>
Wed, 30 Nov 2011 04:32:50 +0000 (20:32 -0800)
commite15c3983f631015faf004ae8d4cf43b7f9a1e52c
tree00c892553089eb2ea48c2c05c571b2ba81e0bfec
parent3c7b16737f11d21e237343b7e9d40af59dbf30c9
Xilinx: Axi Ethernet Driver: Optimize BD numbers

Replaced:
       lp->tx_bd_tail++;
       if (lp->tx_bd_tail >= TX_BD_NUM)
               lp->tx_bd_tail = 0;
By:
       lp->tx_bd_tail = ++lp->tx_bd_tail % TX_BD_NUM;

Because gcc generates for old implementation longer code (7 instructions
with 3 lw/sw) than should be. New one is composed with 4 instructions
(lwi, addik, andi, swi).

This code is called in loop a lot.

Signed-off-by: Michal Simek <monstr@monstr.eu>
drivers/net/xilinx_axienet.h
drivers/net/xilinx_axienet_main.c