Do you mean for the cond to be evaluated at compile time in the following? (def store-to-register (reg val) (cond (reg) ((number-that-means-eax) (store eax val) If so you could just generate: (mov t1 eax) Then the register allocator will try to allocate t1 in eax and remove that move. Bryce