> On Jul 21, 2016, at 4:22 PM, Peter Corlett <ab...@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