plan work on isel
This commit is contained in:
parent
839dca331a
commit
891877d67d
1 changed files with 15 additions and 5 deletions
33
lisc/FP
Normal file
33
lisc/FP
Normal file
|
@ -0,0 +1,33 @@
|
|||
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.
|
Loading…
Add table
Add a link
Reference in a new issue