On Jul 21, 2016, at 4:22 PM, Peter Corlett <abuse
at cabal.org.uk> wrote:
...
A predicated instruction is one that does or does not execute based on some
condition. CISC machines generally use condition codes (aka flags), and only
have predicated branch instructions. Branch-not-equal, that kind of things.
In ARM, *all* instructions can be predicated. Because instructions are 32 bits
wide, it has the luxury of allocating four bits to select from one of 16
possible predicates based on the CPU flags. One predicate is "always" so one
can also unconditionally execute instructions.
An occasionally forgotten feature is that ALU operations also have a S-bit to
indicate whether they should update the flags based on the result, or leave
them alone.
I didn't realize that. This feature makes it more like the Electrologica machines,
which invented this approach back in 1958.
paul