[Libre-soc-bugs] [Bug 550] binutils support needed for svp64

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Dec 7 20:54:20 GMT 2021


https://bugs.libre-soc.org/show_bug.cgi?id=550

--- Comment #35 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to dmitry.selyutin from comment #34)
> The progress so far: I've updated the binutils sources (they're vastly
> outdated), 

yes, no rush there.

> and also made some changes to gas to make it parse some of our
> extensions (it seems all but bc stuff).

fantastic.

> After parsing, nothing is done for
> now: we discard parsing results. This is an intermediate stage to let
> interested parties to take a look at, until things go too far. Please refer
> to binutils-gdb svp64 branch.
> 
> https://git.libre-soc.org/?p=binutils-gdb.git;a=shortlog;h=refs/heads/svp64

ah good it's a branch.  wheww

it looks really good: the only thing that's a little odd is:

+static char *
+svp64_decode_ff_or_pr(char *str, int *value)
+{
+  size_t i;
+  static const struct svp64_ff_or_pr_map table[] = {
+    SVP64_FF_OR_PR_MAP ("RC1" , SVP64_FF_OR_PR_RC1),
+    SVP64_FF_OR_PR_MAP ("~RC1", SVP64_FF_OR_PR_NRC1),
+    SVP64_FF_OR_PR_MAP ("lt"  , 0),
+    SVP64_FF_OR_PR_MAP ("nl"  , 1),
+    SVP64_FF_OR_PR_MAP ("ge"  , 1), /* same value as nl */
+    SVP64_FF_OR_PR_MAP ("gt"  , 2),

which is making me wonder where the heck "pr=" and "ff=" are
coming from :)

decode_predicate() i totally get.  the lt/ge/gt should not
be in the list.

https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/sv/trans/svp64.py;h=45b292b4c4c32bbff548f2bf299235633d31db6c;hb=ca475c00b80c1b66d03505e1d7ba6f26a379ff2e#l676

decode_ffirst() should be:

 121 # partial-decode fail-first mode
 122 def decode_ffirst(encoding):
 123     if encoding in ['RC1', '~RC1']:
 124         return encoding
 125     return decode_bo(encoding)

so only RC1 or ~RC1

other than that it looks really good.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list