Propeller Manual

Table Of Contents
LOCKNEW – Assembly Language Reference
Page 304 · Propeller Manual v1.1
LOCKNEW
Instruction: Check out a new lock and get its ID.
LOCKNEW NewID
Result: The new lock’s ID (0-7) is written to NewID.
NewID (d-field) is the register where the newly checked-out lock’s ID is written.
Opcode Table:
–INSTR– ZCRI –CON– –DEST– –SRC– Z Result C Result Result Clocks
000011 0011 1111 ddddddddd ------100
ID = 0 No Lock Free Written 7..22
Concise Truth Table:
In Out
Destination Source
1
Z
C
Effects
Destination Z C
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0000; 0 1 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0001; 1 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0002; 2 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0003; 3 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0004; 4 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0005; 5 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0006; 6 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0007; 7 0 0
$----_----; - %0_00000100; 4 -
-
wz wc
$0000_0007; 7 0 1
1
Source is automatically set to immediate value 4 by the assembler to indicate that this is the LOCKNEW hub instruction.
Explanation
LOCKNEW is one of four lock instructions (LOCKNEW, LOCKRET, T LOCKSET, and LOCKCLR) used to
manage resources that are user-defined and deemed mutually exclusive.
LOCKNEW checks out a
unique lock, from the hub, and retrieves the ID of that lock. The
LOCKNEW instruction behaves
similar to Spin’s
LOCKNEW command; see LOCKNEW on page . 122
If the
WZ effect is specified, the Z flag is set (1) if the returned ID is zero (0). If the WC effect
is specified, the C flag is set (1) if no lock was available for checking out. The ID of the
newly checked-out lock is written to NewID unless the
NR effect is specified.
LOCKNEW is a hub instruction. 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. See Hub on page 24 for more information.