- {
- long value = fields->f_udisp6;
- value = ((unsigned int) (value) >> (2));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_HASH_PREFIX)|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 4, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_DISP8 :
- errmsg = insert_normal (od, fields->f_disp8, 0|(1<<CGEN_OPERAND_HASH_PREFIX), 0, 4, 8, 16, total_length, buffer);
- break;
- case FR30_OPERAND_DISP9 :
- {
- long value = fields->f_disp9;
- value = ((int) (value) >> (1));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_HASH_PREFIX), 0, 4, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_DISP10 :
- {
- long value = fields->f_disp10;
- value = ((int) (value) >> (2));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_HASH_PREFIX), 0, 4, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_S10 :
- {
- long value = fields->f_s10;
- value = ((int) (value) >> (2));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_HASH_PREFIX), 0, 8, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_U10 :
- {
- long value = fields->f_u10;
- value = ((unsigned int) (value) >> (2));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_HASH_PREFIX)|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_I32 :
- errmsg = insert_normal (od, fields->f_i32, 0|(1<<CGEN_OPERAND_HASH_PREFIX)|(1<<CGEN_OPERAND_SIGN_OPT)|(1<<CGEN_OPERAND_UNSIGNED), 16, 0, 32, 32, total_length, buffer);
- break;
- case FR30_OPERAND_M4 :
- {
- long value = fields->f_m4;
- value = ((value) & (15));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 4, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_I20 :
- {
-do {
- FLD (f_i20_4) = ((unsigned int) (FLD (f_i20)) >> (16));
- FLD (f_i20_16) = ((FLD (f_i20)) & (65535));
-} while (0);
- errmsg = insert_normal (od, fields->f_i20_4, 0|(1<<CGEN_OPERAND_HASH_PREFIX)|(1<<CGEN_OPERAND_UNSIGNED)|(1<<CGEN_OPERAND_VIRTUAL), 0, 8, 4, 16, total_length, buffer);
- if (errmsg)
- break;
- errmsg = insert_normal (od, fields->f_i20_16, 0|(1<<CGEN_OPERAND_HASH_PREFIX)|(1<<CGEN_OPERAND_UNSIGNED)|(1<<CGEN_OPERAND_VIRTUAL), 16, 0, 16, 16, total_length, buffer);
- if (errmsg)
- break;
- }
- break;
- case FR30_OPERAND_DIR8 :
- errmsg = insert_normal (od, fields->f_dir8, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- break;
- case FR30_OPERAND_DIR9 :
- {
- long value = fields->f_dir9;
- value = ((unsigned int) (value) >> (1));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_DIR10 :
- {
- long value = fields->f_dir10;
- value = ((unsigned int) (value) >> (2));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_LABEL9 :
- {
- long value = fields->f_rel9;
- value = ((int) (((value) - (((pc) + (2))))) >> (1));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_PCREL_ADDR), 0, 8, 8, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_LABEL12 :
- {
- long value = fields->f_rel12;
- value = ((int) (((value) - (((pc) + (2))))) >> (1));
- errmsg = insert_normal (od, value, 0|(1<<CGEN_OPERAND_PCREL_ADDR), 0, 5, 11, 16, total_length, buffer);
- }
- break;
- case FR30_OPERAND_REGLIST_LOW_LD :
- errmsg = insert_normal (od, fields->f_reglist_low_ld, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- break;
- case FR30_OPERAND_REGLIST_HI_LD :
- errmsg = insert_normal (od, fields->f_reglist_hi_ld, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- break;
- case FR30_OPERAND_REGLIST_LOW_ST :
- errmsg = insert_normal (od, fields->f_reglist_low_st, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- break;
- case FR30_OPERAND_REGLIST_HI_ST :
- errmsg = insert_normal (od, fields->f_reglist_hi_st, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 8, 8, 16, total_length, buffer);
- break;
- case FR30_OPERAND_CC :
- errmsg = insert_normal (od, fields->f_cc, 0|(1<<CGEN_OPERAND_UNSIGNED), 0, 4, 4, 16, total_length, buffer);
- break;
- case FR30_OPERAND_CCC :
- errmsg = insert_normal (od, fields->f_ccc, 0|(1<<CGEN_OPERAND_HASH_PREFIX)|(1<<CGEN_OPERAND_UNSIGNED), 16, 0, 8, 16, total_length, buffer);