GCC 4.1.1 generates invalid mfctl,w asm instruction
Guy Martin <[email protected]>
| Newsgroups | gmane.linux.ports.hppa |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
Reference : http://h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,959!114!244,00.html
According this doc, the ,w completer of the mfctl instruction is only used for the cr11 register. This is the way binutils handle it.
However, gcc will generate the following instruction "mfctl,w %%cr27,%0" while compiling glibc-2.5 on pa2.0.
This little patch fix this :
diff -uNr gcc-4.1.1.orig/gcc/config/pa/pa.md gcc-4.1.1/gcc/config/pa/pa.md
--- gcc-4.1.1.orig/gcc/config/pa/pa.md 2007-01-30 06:59:07.579391048 +0000
+++ gcc-4.1.1/gcc/config/pa/pa.md 2007-01-30 07:23:29.213188936 +0000
@@ -9854,7 +9854,7 @@
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(const_int 0)] UNSPEC_TP))]
""
- "{mfctl|mfctl,w} %%cr27,%0"
+ "mfctl %%cr27,%0"
[(set_attr "type" "multi")
(set_attr "length" "4")])
Please review.
Regards,
Guy
--
Guy Martin
Gentoo Linux - HPPA port Lead