object.c
/*
 *  emit_g_h_i_jkm - emit an instruction with 4-bit op code, 3-bit index register, 3-bit source or result register,
 *  and 22-bit address or displacement
 */
emit an instruction with 4-bit op code, 3-bit index register, 3-bit source or result register,
and 22-bit address or displacement
emit an instruction with 4 - bit op code 3 - bit index register 3 - bit source or result register and 22 - bit address or displacement
void emit_g_h_i_jkm(Section *section, u8 g, u8 h, u8 i, Value *jkm) {
    u32 instr;
    instr = (g << 28) | (h << 25) | (i << 22) | (jkm->intValue & MASK22);
    putHalfWord(section, section->originCounter, instr);
    if (isExternal(jkm)) {
        addExternalEntry(section, jkm, FALSE, section->originCounter * 16 + 31, 22);
    }
    else if (isRelocatable(jkm)) {
        addStdRelocationEntry(section, jkm, FALSE);
    }
    listCodeLocation(section);
    listCode10_22(instr, jkm->attributes);
    advanceBitPosition(section, 32);
}
void emit_g_h_i_jkm ( Section * section , u8 g , u8 h , u8 i , Value * jkm ) { u32 instr ; instr = ( g << 28 ) | ( h << 25 ) | ( i << 22 ) | ( jkm -> intValue & MASK22 ) ; putHalfWord ( section , section -> originCounter , instr ) ; if ( isExternal ( jkm ) ) { addExternalEntry ( section , jkm , FALSE , section -> originCounter * 16 + 31 , 22 ) ; } else if ( isRelocatable ( jkm ) ) { addStdRelocationEntry ( section , jkm , FALSE ) ; } listCodeLocation ( section ) ; listCode10_22 ( instr , jkm -> attributes ) ; advanceBitPosition ( section , 32 ) ; }
emit_g_h_i_jkm - emit an instruction with 4-bit op code, 3-bit index register, 3-bit source or result register,
  and 22-bit address or displacement
emit_g_h_i_jkm - emit an instruction with 4 - bit op code 3 - bit index register 3 - bit source or result register and 22 - bit address or displacement