r300/compiler: Refactor to allow different instruction types