[LispM-Hackers] BR-*-LIKELY

Paul Fuqua pf@ti.com
Fri, 4 Jan 2002 14:43:22 -0600


    Date: 03 Jan 2002 21:39:10 -0900
    From: james@unlambda.com (James A. Crippen)
    
    ;;; 174-177 are special BRANCH-LIKELY instructions
    ;;; Hummingbird hardware will follow these branches in the macro-pipeline

The Hummingbird (Explorer 2), unlike the original Explorer, had a sort
of macroinstruction pipeline.  Explorer macroinstructions were not
pipelined:  each was individually decoded, dispatched, and executed,
then control went back to the start of decoding for the next one.

Hummingbird added hardware that in some cases (involving
macroinstructions implemented by a single MICROinstruction) could absorb
the overhead and jump directly to the execution of the next
macroinstruction.  Thus a series of simple macroinstructions could
execute at one cycle each.  (This was known irreverently as "RISC
mode.")

If we were doing this, we wouldn't want to fall out just because of a
branch, so we had the LIKELY branches to allow the common case to stay
in RISC mode.  However, we could only sustain it for about four
macroinstructions anyway due to memory-bandwidth limitations, so LIKELY
branches weren't a big benefit and I don't think the compiler ever
generated them.

                              pf