kernel_optimize_test/arch/sh
Takashi YOSHII 3b041227f7 sh: Add plain udivsi3 (not _i4*) for gcc-4.1 and lower.
We chan't share code for udivsi3 and udivsi3_i4, because they
have a different clobber list. Copy udivsi3 from gcc-4.1.2.

As shown in arch/sh/lib/udivsi3.S (and -Os.S),

  .global __udivsi3_i4i
  .global __udivsi3_i4
  .global __udivsi3
__udivsi3_i4i:
  ...

Three symbols are sharing one code, which is actually udivsi3_i4i.
But, this results unwanted code with gcc 4.1.

In gcc, these three are treated as pseudo instructions that have
their own clobber list apart from the usual calling convention.

According to sh's machine description. The clobber list is as
follows:

 - udivsi3_i4i : t,r1,pr,mach,macl
 - udivsi3_i4  : t,r0,r1,r4,r5,pr,dr0,dr2,dr4
 - udivsi3     : t,r4,pr

The caller of udivsi3 will be left with a broken r1 and mac*.

gcc-4.1.x and older(at least to 3.4) generate udivsi3.
ST's gcc-4.1.1 seems to be OK because it has _i4i.

Signed-off-by: Takashi YOSHII <yoshii.takashi@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22 18:43:53 +09:00
..
boards sh: move the hp6xx pm code 2008-12-22 18:43:52 +09:00
boot sh: FTRACE renamed to FUNCTION_TRACER. 2008-10-31 16:20:36 +09:00
cchips sh: Switch HD64461 from hw_interrupt_type to irq_chip 2008-12-22 18:43:50 +09:00
configs sh: update se7343 defconfig 2008-12-22 18:43:52 +09:00
drivers sh: pci-sh7780: fix pci memory address mask 2008-12-22 18:43:50 +09:00
include sh: Fix up the SH-4A mutex fastpath semantics. 2008-12-22 18:43:52 +09:00
kernel sh: move the hp6xx pm code 2008-12-22 18:43:52 +09:00
lib sh: Add plain udivsi3 (not _i4*) for gcc-4.1 and lower. 2008-12-22 18:43:53 +09:00
lib64 Fix incorrect use of loose in c-checksum.c 2008-12-22 18:43:52 +09:00
math-emu sh: Fix up the math-emu build. 2007-06-11 15:57:42 +09:00
mm sh: P4 ioremap pass-through 2008-12-22 18:43:48 +09:00
oprofile sh: oprofile: Fix up the SH7750 performance counter name. 2008-10-27 09:51:45 +09:00
tools sh: RSK+ 7201 board support. 2008-12-22 18:43:51 +09:00
Kconfig sh: allow CONFIG_CPU_IDLE 2008-12-22 18:43:52 +09:00
Kconfig.cpu sh: Disable big endian for SH-5. 2008-02-14 14:22:10 +09:00
Kconfig.debug sh: Disable 4kB stacks when using PAGE_SIZE_64KB. 2008-09-20 20:16:35 +09:00
Makefile sh: Re-add support for best fit ISA tuning if none is available. 2008-12-22 18:43:49 +09:00