X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=cpu%2Ffr30.cpu;h=84c32cf5d78f0ef1a0526dc086d9728e1b1cde53;hb=db178f47dd4c9d2882da42a8915018d1fb90ea17;hp=01246477f31889b94afb1613953130d2c8ee5f89;hpb=62de1c630f16c21418464727692bcd29e23ef1b0;p=deliverable%2Fbinutils-gdb.git diff --git a/cpu/fr30.cpu b/cpu/fr30.cpu index 01246477f3..84c32cf5d7 100644 --- a/cpu/fr30.cpu +++ b/cpu/fr30.cpu @@ -159,10 +159,12 @@ (dnf f-u4c "4 bit 0 extended" () 12 4) (df f-i4 "4 bit sign extended" () 8 4 INT #f #f) (df f-m4 "4 bit minus extended" () 8 4 UINT + ; ??? This field takes a value in the range [-16,-1] but there + ; doesn't seem a way to tell CGEN that. Use an unsigned field and + ; disable range checks on insertion by masking. Restore the sign + ; on extraction. CGEN generated documentation for insns that use + ; this field will be wrong. ((value pc) (and WI value (const #xf))) - ; ??? On a 64 bit host this doesn't get completely sign extended - ; if the value is recorded in a long, as it is during extraction. - ; Various fixes exist, pick one. ((value pc) (or WI value (const -16))) ) (dnf f-u8 "8 bit unsigned" () 8 8)