Instructions classification: FP : add, sub, mul, sdiv, copy, par, arg Maybe : and, or, xor, cmp(6) Non FP: udiv, srem, urem, store(4), load(7), ext(7), alloc(5), parc, argc, call 15 bits for operations 32768 -1 bit for s,d 16384 New conversion instructions: - Bitcast conversion between fp and ints. cast - Convert fp to/from int. ftosi sitof (only signed at first, truncation) - Convert single to/from double fconv Summary: Add cast, ftosi sitof, fconv Add a 'floating point' bit to instructions Conversions from/to unsigned types are hard! I need to find a reference for that. Problem with "cls" field: for comparisons, this field is for the argument of the instruction, but, in the case of Load (for example), it is about the result. Roadmap in isel. Make sure all floating point immediates are accessed through a memory load. The load can be fused in some instructions (add, sub, mul, div). This should be handled similarly to the large integer constants. Complete ABI implementation, we should only need the movsd instruction to transfer between sse registers and memory.