diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index c9ce22a654a..0ff08aad635 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -29,20 +29,16 @@ ;; ??? Should check all DImode patterns for consistency and usefulness. -;; ??? Should add support for using BSR for short function calls. - ;; ??? The MAC.W and MAC.L instructions are not supported. There is no ;; way to generate them. -;; ??? The BSR instruction is not supported. It might be possible to -;; generate it by keeping track of function sizes (and hence relative -;; addresses), and then using it only if the target is earlier in the same -;; file, and is within range. Better would be assembler/linker relaxing, -;; but that is much harder. - ;; ??? The cmp/str instruction is not supported. Perhaps it can be used ;; for a str* inline function. +;; BSR is not generated by the compiler proper, but when relaxing, it +;; generates .uses pseudo-ops that allow linker relaxation to create +;; BSR. This is actually implemented in bfd/{coff,elf32}-sh.c + ;; Special constraints for SH machine description: ;; ;; t -- T