[Libre-soc-bugs] [Bug 238] POWER Compressed Formal Standard writeup

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Dec 1 00:56:34 GMT 2020


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

--- Comment #161 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Alexandre Oliva from comment #159)
> 2.1.4 states branches always branch to a 4-byte aligned address
> 
> I thought it was also the case that branch targets also had to be in
> uncompressed mode,

yes

> but that unconditional branches have M and even N suggest
> otherwise:
> 
> | N | offs2   | | 000.LK | offs!=0        | M | b, bl

I'd guess not much thought was given to that and N and M are there just for
consistency, simplifying the decoder.

> as for conditional branches, do M and N apply whether or not the branch is
> taken?
> 
> | N | BO3 BI3 | | 001.0  | LK BI | BO     | M | bclr, bclrl

I'd say they apply only to untaken branches.

> what about when they're not there?  M=N=1 suggest immediate mode, that's
> always followed by another uncompressed insn:
> 
> | 1 | offs2   | | 000.LK | BI    | BO1 oo | 1 | bc, bcl
> 
> but the LK variants would suggest function calls, targeting entry points in
> uncompressed mode.  should they imply a switch to uncompressed mode at least
> when the branch is taken?

I would expect switching to uncompressed mode due to the branch. The return
instruction would also switch to uncompressed mode.

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


More information about the libre-soc-bugs mailing list