13 |
Description: |
Description: |
14 |
|
|
15 |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
16 |
|
Name: Allen Leung |
17 |
|
Date: 2000/11/10 18:00:00 |
18 |
|
Tag: leunga-20001110-new-x86-fp |
19 |
|
|
20 |
|
A new x86 floating point code generator has been added. |
21 |
|
By default this is turned off. To turn this on, do: |
22 |
|
|
23 |
|
CM.autoload "$smlnj/compiler.cm"; |
24 |
|
Compiler.Control.MLRISC.getFlag "x86-fast-fp" := true; |
25 |
|
|
26 |
|
Changes: |
27 |
|
|
28 |
|
1. Changed FTAN to FPTAN so that the assembly output is correct. |
29 |
|
2. Changed the extension callback for FTANGENT to generate: |
30 |
|
|
31 |
|
fptan |
32 |
|
fstp %st(0) |
33 |
|
instead of |
34 |
|
fptan |
35 |
|
fstpl ftempmem |
36 |
|
|
37 |
|
3. Numerous assembly fixes for x86. |
38 |
|
|
39 |
|
5. Cleaned up the machine code output module x86/x86MC.sml and added |
40 |
|
support for a whole bunch of instructions and addressing modes: |
41 |
|
|
42 |
|
fadd/fsub/fsubr/fmul/fdiv/fdivr %st, %st(n) |
43 |
|
faddp/fsubp/fsubrp/fmulp/fdivp/fdivrp %st, %st(n) |
44 |
|
fadd/fsub/fsubr/fmul/fdiv/fdivr %st(n), %st |
45 |
|
fiadd/fisub/fisubr/fimul/fidiv/fidivr mem |
46 |
|
fxch %st(n) |
47 |
|
fld %st(n) |
48 |
|
fst %st(n) |
49 |
|
fst mem |
50 |
|
fstp %st(n) |
51 |
|
fucom %st(n) |
52 |
|
fucomp %st(n) |
53 |
|
|
54 |
|
All these are now generated when the fast fp mode is turned on. |
55 |
|
|
56 |
|
6. Removed the dedicated registers %st(0), ..., %st(7) from X86CpsRegs |
57 |
|
|
58 |
|
---------------------------------------------------------------------- |
59 |
Name: Matthias Blume |
Name: Matthias Blume |
60 |
Date: 2000/11/09 11:20:00 JST |
Date: 2000/11/09 11:20:00 JST |
61 |
Tag: blume-20001109-scc |
Tag: blume-20001109-scc |