diff options
Diffstat (limited to 'arch/sh/mm')
-rw-r--r-- | arch/sh/mm/Makefile_64 | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/sh/mm/Makefile_64 b/arch/sh/mm/Makefile_64 index 5ff83583593e..2731cf1c4e0a 100644 --- a/arch/sh/mm/Makefile_64 +++ b/arch/sh/mm/Makefile_64 | |||
@@ -17,3 +17,28 @@ obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o | |||
17 | obj-$(CONFIG_NUMA) += numa.o | 17 | obj-$(CONFIG_NUMA) += numa.o |
18 | 18 | ||
19 | EXTRA_CFLAGS += -Werror | 19 | EXTRA_CFLAGS += -Werror |
20 | |||
21 | # Special flags for fault_64.o. This puts restrictions on the number of | ||
22 | # caller-save registers that the compiler can target when building this file. | ||
23 | # This is required because the code is called from a context in entry.S where | ||
24 | # very few registers have been saved in the exception handler (for speed | ||
25 | # reasons). | ||
26 | # The caller save registers that have been saved and which can be used are | ||
27 | # r2,r3,r4,r5 : argument passing | ||
28 | # r15, r18 : SP and LINK | ||
29 | # tr0-4 : allow all caller-save TR's. The compiler seems to be able to make | ||
30 | # use of them, so it's probably beneficial to performance to save them | ||
31 | # and have them available for it. | ||
32 | # | ||
33 | # The resources not listed below are callee save, i.e. the compiler is free to | ||
34 | # use any of them and will spill them to the stack itself. | ||
35 | |||
36 | CFLAGS_fault_64.o += -ffixed-r7 \ | ||
37 | -ffixed-r8 -ffixed-r9 -ffixed-r10 -ffixed-r11 -ffixed-r12 \ | ||
38 | -ffixed-r13 -ffixed-r14 -ffixed-r16 -ffixed-r17 -ffixed-r19 \ | ||
39 | -ffixed-r20 -ffixed-r21 -ffixed-r22 -ffixed-r23 \ | ||
40 | -ffixed-r24 -ffixed-r25 -ffixed-r26 -ffixed-r27 \ | ||
41 | -ffixed-r36 -ffixed-r37 -ffixed-r38 -ffixed-r39 -ffixed-r40 \ | ||
42 | -ffixed-r41 -ffixed-r42 -ffixed-r43 \ | ||
43 | -ffixed-r60 -ffixed-r61 -ffixed-r62 \ | ||
44 | -fomit-frame-pointer | ||