- mode_D = register_mode(&newmode);
-
- /* extended */
- newmode.name = id_from_str("E", 1);
- newmode.code = irm_E;
- newmode.sign = 1;
- newmode.align = 4;
- newmode.size = 80;
-
- mode_E = register_mode(&newmode);
-
- /* Integer Number Modes */
- newmode.sort = irms_int_number;
- newmode.arithmetic = irma_twos_complement;
-
- /* signed byte */
- newmode.name = id_from_str("Bs", 2);
- newmode.code = irm_Bs;
- newmode.sign = 1;
- newmode.align = 1;
- newmode.size = 8;
- newmode.modulo_shift = 32;
-
- mode_Bs = register_mode(&newmode);
-
- /* unsigned byte */
- newmode.name = id_from_str("Bu", 2);
- newmode.code = irm_Bu;
- newmode.arithmetic = irma_twos_complement;
- newmode.sign = 0;
- newmode.align = 1;
- newmode.size = 8;
- newmode.modulo_shift = 32;
-
- mode_Bu = register_mode(&newmode);
-
- /* signed short integer */
- newmode.name = id_from_str("Hs", 2);
- newmode.code = irm_Hs;
- newmode.sign = 1;
- newmode.align = 2;
- newmode.size = 16;
- newmode.modulo_shift = 32;
-
- mode_Hs = register_mode(&newmode);
-
- /* unsigned short integer */
- newmode.name = id_from_str("Hu", 2);
- newmode.code = irm_Hu;
- newmode.sign = 0;
- newmode.align = 2;
- newmode.size = 16;
- newmode.modulo_shift = 32;
-
- mode_Hu = register_mode(&newmode);
-
- /* signed integer */
- newmode.name = id_from_str("Is", 2);
- newmode.code = irm_Is;
- newmode.sign = 1;
- newmode.align = 4;
- newmode.size = 32;
- newmode.modulo_shift = 32;
-
- mode_Is = register_mode(&newmode);
-
- /* unsigned integer */
- newmode.name = id_from_str("Iu", 2);
- newmode.code = irm_Iu;
- newmode.sign = 0;
- newmode.align = 4;
- newmode.size = 32;
- newmode.modulo_shift = 32;
-
- mode_Iu = register_mode(&newmode);
-
- /* signed long integer */
- newmode.name = id_from_str("Ls", 2);
- newmode.code = irm_Ls;
- newmode.sign = 1;
- newmode.align = 4;
- newmode.size = 64;
- newmode.modulo_shift = 64;
-
- mode_Ls = register_mode(&newmode);
-
- /* unsigned long integer */
- newmode.name = id_from_str("Lu", 2);
- newmode.code = irm_Lu;
- newmode.sign = 0;
- newmode.align = 4;
- newmode.size = 64;
- newmode.modulo_shift = 64;
-
- mode_Lu = register_mode(&newmode);
-
- /* Character Modes */
- newmode.sort = irms_character;
- newmode.arithmetic = irma_none;
-
- /* Character */
- newmode.name = id_from_str("C", 1);
- newmode.code = irm_C;
- newmode.sign = 0;
- newmode.align = 1;
- newmode.size = 8;
- newmode.modulo_shift = 32;
-
- mode_C = register_mode(&newmode);
-
- /* Unicode character */
- newmode.name = id_from_str("U", 1);
- newmode.code = irm_U;
- newmode.sign = 0;
- newmode.align = 2;
- newmode.size = 16;
- newmode.modulo_shift = 32;
-
- mode_U = register_mode(&newmode);
-
- /* Reference Modes */
- newmode.sort = irms_reference;
- newmode.arithmetic = irma_twos_complement;
-
- /* pointer */
- newmode.name = id_from_str("P", 1);
- newmode.code = irm_P;
- newmode.sign = 0;
- newmode.align = 4;
- newmode.size = 32;
- newmode.modulo_shift = 0;
-
- mode_P = register_mode(&newmode);
-
- /* set the machine specific modes to the predifined ones */
- mode_P_mach = mode_P;
-}
-
-
-void finish_mode(void) {
- obstack_free(&modes, 0);
-
- mode_T = NULL;
- mode_X = NULL;
- mode_M = NULL;
- mode_BB = NULL;
- mode_ANY = NULL;
- mode_BAD = NULL;
-
- mode_F = NULL;
- mode_D = NULL;
- mode_E = NULL;
-
- mode_Bs = NULL;
- mode_Bu = NULL;
- mode_Hs = NULL;
- mode_Hu = NULL;
- mode_Is = NULL;
- mode_Iu = NULL;
- mode_Ls = NULL;
- mode_Lu = NULL;
-
- mode_C = NULL;
- mode_U = NULL;
- mode_b = NULL;
- mode_P = NULL;
-
- mode_P_mach = NULL;