Propeller Manual

Table Of Contents
Assembly Language Reference
Notes for Master Table
Note 1: Clock Cycles for Hub Instructions
Hub instructions require 7 to 22 clock cycles to execute depending on the relation between
the cog’s hub access window and the instruction’s moment of execution. The Hub provides a
hub access window to each cog every 16 clocks. Because each cog runs independently of the
Hub, it must sync to the Hub when executing a hub instruction. The first hub instruction in a
sequence will take from 0 to 15 clocks to sync up to the hub access window, and 7 clocks
afterwards to execute; thus the 7 to 22 (15 + 7) clock cycles to execute. After the first hub
instruction, there will be 9 (16 – 7) free clocks before a subsequent hub access window
arrives for that cog; enough time to execute two 4-clock instructions without missing the next
hub access window. To minimize clock waste, you can insert two normal instructions
between any two otherwise-contiguous hub instructions without any increase in execution
time. Beware that hub instructions can cause execution timing to appear indeterminate;
particularly the first hub instruction in a sequence.
Note 2: Clock Cycles for Modify-Branch Instructions
Instructions that modify a value and possibly jump, based on the result, require a different
amount of clock cycles depending on whether or not a jump is required. These instructions
take 4 clock cycles if a jump is required and 8 clock cycles if no jump is required. Since
loops utilizing these instructions typically need to be fast, they are optimized in this way for
speed.
Note 3:
ADDABS C out: If S is negative, C = the inverse of unsigned borrow (for D-S).
Note 4:
SUBABS C out: If S is negative, C = the inverse of unsigned carry (for D+S).
Page 256 · Propeller Manual v1.1