-/* Data Modes */
- newmode.vector_elem = 1;
-
- /* Float Number Modes */
- newmode.sort = irms_float_number;
- newmode.arithmetic = irma_ieee754;
-
- /* float */
- newmode.name = new_id_from_chars("F", 1);
- newmode.code = irm_F;
- newmode.sign = 1;
- newmode.align = 32;
- newmode.size = 32;
-
- mode_F = register_mode(&newmode);
-
- /* double */
- newmode.name = new_id_from_chars("D", 1);
- newmode.code = irm_D;
- newmode.sign = 1;
- newmode.align = 64;
- newmode.size = 64;
-
- mode_D = register_mode(&newmode);
-
- /* extended */
- newmode.name = new_id_from_chars("E", 1);
- newmode.code = irm_E;
- newmode.sign = 1;
- newmode.align = 128;
- 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 = new_id_from_chars("Bs", 2);
- newmode.code = irm_Bs;
- newmode.sign = 1;
- newmode.align = 8;
- newmode.size = 8;
- newmode.modulo_shift = 32;
-
- mode_Bs = register_mode(&newmode);
-
- /* unsigned byte */
- newmode.name = new_id_from_chars("Bu", 2);
- newmode.code = irm_Bu;
- newmode.arithmetic = irma_twos_complement;
- newmode.sign = 0;
- newmode.align = 8;
- newmode.size = 8;
- newmode.modulo_shift = 32;
-
- mode_Bu = register_mode(&newmode);
-
- /* signed short integer */
- newmode.name = new_id_from_chars("Hs", 2);
- newmode.code = irm_Hs;
- newmode.sign = 1;
- newmode.align = 16;
- newmode.size = 16;
- newmode.modulo_shift = 32;
-
- mode_Hs = register_mode(&newmode);
-
- /* unsigned short integer */
- newmode.name = new_id_from_chars("Hu", 2);
- newmode.code = irm_Hu;
- newmode.sign = 0;
- newmode.align = 16;
- newmode.size = 16;
- newmode.modulo_shift = 32;
-
- mode_Hu = register_mode(&newmode);
-
- /* signed integer */
- newmode.name = new_id_from_chars("Is", 2);
- newmode.code = irm_Is;
- newmode.sign = 1;
- newmode.align = 32;
- newmode.size = 32;
- newmode.modulo_shift = 32;
-
- mode_Is = register_mode(&newmode);
-
- /* unsigned integer */
- newmode.name = new_id_from_chars("Iu", 2);
- newmode.code = irm_Iu;
- newmode.sign = 0;
- newmode.align = 32;
- newmode.size = 32;
- newmode.modulo_shift = 32;
-
- mode_Iu = register_mode(&newmode);
-
- /* signed long integer */
- newmode.name = new_id_from_chars("Ls", 2);
- newmode.code = irm_Ls;
- newmode.sign = 1;
- newmode.align = 32;
- newmode.size = 64;
- newmode.modulo_shift = 64;
-
- mode_Ls = register_mode(&newmode);
-
- /* unsigned long integer */
- newmode.name = new_id_from_chars("Lu", 2);
- newmode.code = irm_Lu;
- newmode.sign = 0;
- newmode.align = 32;
- 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 = new_id_from_chars("C", 1);
- newmode.code = irm_C;
- newmode.sign = 0;
- newmode.align = 8;
- newmode.size = 8;
- newmode.modulo_shift = 32;
-
- mode_C = register_mode(&newmode);
-
- /* Unicode character */
- newmode.name = new_id_from_chars("U", 1);
- newmode.code = irm_U;
- newmode.sign = 0;
- newmode.align = 16;
- 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 = new_id_from_chars("P", 1);
- newmode.code = irm_P;
- newmode.sign = 0;
- newmode.align = 32;
- 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;
-}
-
-ir_mode *find_unsigned_mode(const ir_mode *mode)
-{
- ir_mode n = *mode;
+ /* Data Modes */
+ newmode.vector_elem = 1;
+
+ /* Float Number Modes */
+ newmode.sort = irms_float_number;
+ newmode.arithmetic = irma_ieee754;
+
+ /* float */
+ newmode.name = new_id_from_chars("F", 1);
+ newmode.code = irm_F;
+ newmode.sign = 1;
+ newmode.size = 32;
+
+ mode_F = register_mode(&newmode);
+
+ /* double */
+ newmode.name = new_id_from_chars("D", 1);
+ newmode.code = irm_D;
+ newmode.sign = 1;
+ newmode.size = 64;
+
+ mode_D = register_mode(&newmode);
+
+ /* extended */
+ newmode.name = new_id_from_chars("E", 1);
+ newmode.code = irm_E;
+ newmode.sign = 1;
+ /* note that the tarval module is calculating with 80 bits, but we use
+ * 96 bits, as that is what will be stored to memory by most hardware */
+ newmode.size = 96;
+
+ mode_E = register_mode(&newmode);
+
+ /* Integer Number Modes */
+ newmode.sort = irms_int_number;
+ newmode.arithmetic = irma_twos_complement;
+
+ /* signed byte */
+ newmode.name = new_id_from_chars("Bs", 2);
+ newmode.code = irm_Bs;
+ newmode.sign = 1;
+ newmode.size = 8;
+ newmode.modulo_shift = 32;
+
+ mode_Bs = register_mode(&newmode);
+
+ /* unsigned byte */
+ newmode.name = new_id_from_chars("Bu", 2);
+ newmode.code = irm_Bu;
+ newmode.arithmetic = irma_twos_complement;
+ newmode.sign = 0;
+ newmode.size = 8;
+ newmode.modulo_shift = 32;
+
+ mode_Bu = register_mode(&newmode);
+
+ /* signed short integer */
+ newmode.name = new_id_from_chars("Hs", 2);
+ newmode.code = irm_Hs;
+ newmode.sign = 1;
+ newmode.size = 16;
+ newmode.modulo_shift = 32;
+
+ mode_Hs = register_mode(&newmode);
+
+ /* unsigned short integer */
+ newmode.name = new_id_from_chars("Hu", 2);
+ newmode.code = irm_Hu;
+ newmode.sign = 0;
+ newmode.size = 16;
+ newmode.modulo_shift = 32;
+
+ mode_Hu = register_mode(&newmode);
+
+ /* signed integer */
+ newmode.name = new_id_from_chars("Is", 2);
+ newmode.code = irm_Is;
+ newmode.sign = 1;
+ newmode.size = 32;
+ newmode.modulo_shift = 32;
+
+ mode_Is = register_mode(&newmode);
+
+ /* unsigned integer */
+ newmode.name = new_id_from_chars("Iu", 2);
+ newmode.code = irm_Iu;
+ newmode.sign = 0;
+ newmode.size = 32;
+ newmode.modulo_shift = 32;
+
+ mode_Iu = register_mode(&newmode);
+
+ /* signed long integer */
+ newmode.name = new_id_from_chars("Ls", 2);
+ newmode.code = irm_Ls;
+ newmode.sign = 1;
+ newmode.size = 64;
+ newmode.modulo_shift = 64;