-
- if (in_main)
- {
- if (!mjump_align)
- {
- warn("* \'jump\' is not recommended for .gpumain as destination addresses "
- "cannot be validated for alignment, use \'mjump\'");
- locptr = (orgactive) ? orgaddr : sloc;
-
- if (locptr % 4)
- {
- warn("* source address not aligned for long or short jump, "
- "insert a \'nop\' before the \'jump\'");
- }
- }
- else
- {
- if (mjump_defined)
- {
- locptr = (orgactive) ? orgaddr : sloc;
- page_jump = (locptr & 0xFFFFFF00) - (mjump_dest & 0xFFFFFF00);
-
- if (page_jump)
- {
- if (mjump_dest % 4)
- {
- warn("* destination address not aligned for long page jump, "
- "insert a \'nop\' before the destination label/address");
- }
- }
- else
- {
- if (!(mjump_dest & 0x0000000F) || ((mjump_dest - 2) % 4))
- {
- warn("* destination address not aligned for short page jump, "
- "insert a \'nop\' before the destination label/address");
- }
- }
- }
- else
- {
- locptr = (orgactive) ? orgaddr : sloc;
- fwdjump[fwindex++] = locptr;
- }
- }
- }
-
- risc_instruction_word(parm, reg2, reg1);