At this point, we've covered every instruction in the SPARC Version 8 instruction set. However, during system crash dump analysis, you may run into several additional SPARC instructions that are referred to as synthetic instructions. These instructions may be provided in a SPARC assembler for the convenience of assembly language programmers. They tend to be more suitable, some have easier-to-remember instruction names , and the syntax is often slimmed down. As you read the table, you'll see what we mean: Table B-25. Common SPARC synthetic instructions Synthetic Instruction | Actual Instruction | Description | jmp address | jmpl address , %g0 | Jump | call address | jmpl address , %o7 | Call a subroutine | tst reg | orcc %g0, reg , %g0 | Test | ret | jmpl %i7+8, %g0 | Return from subroutine | restore | restore %g0, %g0, %g0 | Trivial restore | save | save %g0, %g0, %g0 | Trivial save | set value, reg | sethi %hi (value), reg | When (value&0x1ffff)==0 | | OR or %g0, value, reg | When (-4096<=value<=4095) | | OR sethi %hi (value), reg | Otherwise. Warning: Do not use | | or reg, %lo (value), reg | set as a delay instruction. | not s reg, dreg | xnor s reg , %g0, dreg | One's complement | not reg | xnor reg , %g0, | One's complement | neg s reg, dreg | sub %g0, reg, reg | Two's complement | neg reg | sub %g0, reg, reg | Two's complement | inc reg | add reg , 1, reg | Increment by 1 | inc const13, reg | add reg, const13, reg | Increment by const13 | inccc reg | addcc reg , 1, | Increment by 1 and set ICC | inccc const13, reg | addcc reg , const13, | Increment by const13 and set ICC | dec reg | sub reg , 1, reg | Decrement by 1 | dec const13, reg | sub reg, const13, reg | Decrement by const13 | deccc reg | subcc reg , 1, | Decrement by 1 and set ICC | deccc const13, reg | subcc reg, const13, reg | Decrement by const13 and set ICC | btst reg_or_imm, reg | andcc reg, reg_or_imm , %g0 | Bit test | bset reg_or_imm, reg | or reg, reg_or_imm, reg | Bit set | bclr reg_or_imm, reg | andn reg , reg_or_imm , reg | Bit clear | btog reg_or_imm, reg | xor, reg_or_imm, reg | Bit toggle | clr reg | or %g0, %g0, reg | Clear (zero) register | clrb [ address ] | stb %g0, [ address ] | Clear byte | clrh [ address ] | sth %g0, [ address ] | Clear half-word | clr [ address ] | st %g0, [ address ] | Clear word | mov reg_or_imm, reg | or %g0, reg_or_imm, reg | Move value into register | mov %y, reg | rd %y, reg | Move %y into reg (Variations exist for %asm , %psr , %wim , %tbr ) | mov reg_or_imm , %y | wr %g0, reg_or_imm , %y | Move reg into %y (Variations exist for %asm , %psr , %wim , %tbr ) | |