Correct fr30 comment
authorAlan Modra <amodra@gmail.com>
Thu, 3 Mar 2016 01:49:36 +0000 (12:19 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 3 Mar 2016 02:25:30 +0000 (12:55 +1030)
* fr30.cpu (f.m4): Replace bogus comment with a better guess
at what is really going on.

cpu/ChangeLog
cpu/fr30.cpu

index 6882c4565800a98640fbeb88e9396ea70c3e739c..e62e29fba5ab404646bbfbb0c780e18cb393f1f5 100644 (file)
@@ -1,3 +1,8 @@
+2016-03-03  Alan Modra  <amodra@gmail.com>
+
+       * fr30.cpu (f-m4): Replace bogus comment with a better guess
+       at what is really going on.
+
 2016-03-02  Alan Modra  <amodra@gmail.com>
 
        * fr30.cpu (f-m4): Replace -1 << 4 with -16.
index 01246477f31889b94afb1613953130d2c8ee5f89..84c32cf5d78f0ef1a0526dc086d9728e1b1cde53 100644 (file)
 (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)