ARC: micro-optim: Hint MPY cost to gcc 4 (vs. default 6)

-gcc 4.2.1 notion for MPY cost not quite correct, causing lot fewer
 generations

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: micro-optim: assist gcc in generating reg-relative insns

-For global accessed via pointer, gcc 4.2.1 generates long immediate
 addresses causing code bloat. We "fix"or anchor the pointer to generate
 reg-relative accessed fun tweak courtsey of avg-gcc tutorial at
 http://www.tty1.net/blog/2008-04-29-avr-gcc-optimisations_en.html

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: refactor: Removing floating point code from ARC IDE

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: micro-optim: low-level ISR: scaled addr, delay slots, BIC/BSET

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optiom: KERNEL_DS 0 (vs. FFFFFFFF) for smaller access_ok gen code

-other tweaks such as using unlikely in __access_ok, math simplify

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: (uaccess) use "+r" to remove some redundant gen code

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: refactor: thread_info reorgnaised

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: __do_strncpy_from_user to use ZOLS

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: refactor: ARCAngel4 EMAC driver

-Reduced foot-print of the main ISR (error cases out-ofline)
-Tx path optimized for small packets (which fit into 1 BD = 2K)
-Any specifics for chaining are in a separate block of code

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: ARC specific ip_fast_cscum()/csum_fold()

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: (elf loading speedup) __clear_user does word loops

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: refactor: Reducing generated code footprint of do_signal

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: Inlined arch_align_stack

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: refactor: tweaks to __pa, __va, virt_to_page()

-to have right versions when kernel not linked at 0x8000_0000
-folded two shift ops into one

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: Inline clear_page() and base it on memset

-that way any optimisations to memset automagically apply to it

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: (uaccess) Removed useless nops

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: optim: Helping gcc with ZOL generation in module loader

-also assisted gcc with loop invariants code motion

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Bug: /proc/meminfo not showing pgtable mem - missing vm calls

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Bug: off-by-one error in num of cache lines to flush

-caused sigreturn trampoline corruption as I/D cache lines were not coherent
-manifested with Android bionic Bug 101247
-not relevant to non-android distro since we don't use synthetic
 sigreturn stub here

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Bug: Module/kernel code clobbering task-ptr in r25

-Bug 101512 was causing arbit module to crash
	=Mitigated by adding asm/current.h to MODFLGAS
-Bug 102285 caused cramfs mounts to crash - this time zlib was not
     including asm/current.h
	=solved by reverting above and adding asm/current.h to KBUILD_CFLAGS

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>