Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/MLRISC/ppc/ppc.mdl
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/ppc/ppc.mdl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1545, Wed Jul 14 18:33:15 2004 UTC revision 1546, Wed Jul 14 18:38:08 2004 UTC
# Line 90  Line 90 
90                                  * Note: there is no LD or LDX!!!                                  * Note: there is no LD or LDX!!!
91                                  *)                                  *)
92    
93                         | LBZU
94                         | LHZU
95                         | LHAU
96                         | LWZU
97                         | LDZU
98    
99        datatype store! = STB        datatype store! = STB
100                        | STBE                        | STBE
101                        | STH                        | STH
# Line 98  Line 104 
104                        | STWE                        | STWE
105                        | STDE                        | STDE
106    
107                          | STBU
108                          | STHU
109                          | STWU
110                          | STDU
111    
112        datatype fload! = LFS        datatype fload! = LFS
113                        | LFSE                        | LFSE
114                        | LFD                        | LFD
115                        | LFDE                        | LFDE
116    
117                          | LFSU
118                          | LFDU
119    
120        datatype fstore! = STFS        datatype fstore! = STFS
121                         | STFSE                         | STFSE
122                         | STFD                         | STFD
123                         | STFDE                         | STFDE
124    
125                           | STFSU
126                           | STFDU
127    
128        datatype cmp! = CMP | CMPL        datatype cmp! = CMP | CMPL
129    
130        datatype fcmp! = FCMPO 0w32 (* ordered *)        datatype fcmp! = FCMPO 0w32 (* ordered *)
# Line 298  Line 315 
315          | (I.RegOp rb,I.LWZ)  => loadx{rt,ra,rb,xop=0w23}  (* lwzx *)          | (I.RegOp rb,I.LWZ)  => loadx{rt,ra,rb,xop=0w23}  (* lwzx *)
316          | (I.RegOp rb,I.LWZE) => loadx{rt,ra,rb,xop=0w31}  (* lwzxe *)          | (I.RegOp rb,I.LWZE) => loadx{rt,ra,rb,xop=0w31}  (* lwzxe *)
317          | (I.RegOp rb,I.LDE)  => loadx{rt,ra,rb,xop=0w799} (* ldxe *)          | (I.RegOp rb,I.LDE)  => loadx{rt,ra,rb,xop=0w799} (* ldxe *)
318    
319          | (d,I.LBZ)           => loadd{opcd=0w34,rt,ra,d}          | (d,I.LBZ)           => loadd{opcd=0w34,rt,ra,d}
320          | (de,I.LBZE)         => loadde{opcd=0w58,rt,ra,de,xop=0w0}          | (de,I.LBZE)         => loadde{opcd=0w58,rt,ra,de,xop=0w0}
321          | (d,I.LHZ)           => loadd{opcd=0w40,rt,ra,d}          | (d,I.LHZ)           => loadd{opcd=0w40,rt,ra,d}
# Line 307  Line 325 
325          | (d,I.LWZ)           => loadd{opcd=0w32,rt,ra,d}          | (d,I.LWZ)           => loadd{opcd=0w32,rt,ra,d}
326          | (de,I.LWZE)         => loadde{opcd=0w58,rt,ra,de,xop=0w6}          | (de,I.LWZE)         => loadde{opcd=0w58,rt,ra,de,xop=0w6}
327          | (de,I.LDE)          => loadde{opcd=0w62,rt,ra,de,xop=0w0}          | (de,I.LDE)          => loadde{opcd=0w62,rt,ra,de,xop=0w0}
328    
329            | (I.RegOp rb,I.LHAU) => loadx{rt,ra,rb,xop=0w375} (* lhaux *)
330            | (I.RegOp rb,I.LHZU) => loadx{rt,ra,rb,xop=0w311} (* lhzux *)
331            | (I.RegOp rb,I.LWZU) => loadx{rt,ra,rb,xop=0w55}  (* lwzux *)
332            | (d,I.LHZU)          => loadd{opcd=0w41,rt,ra,d}
333            | (d,I.LWZU)          => loadd{opcd=0w33,rt,ra,d}
334         )         )
335    
336         (* floating point loads *)         (* floating point loads *)
# Line 320  Line 344 
344         | (I.RegOp rb,I.LFSE) => floadx{ft,ra,rb,xop=0w543}         | (I.RegOp rb,I.LFSE) => floadx{ft,ra,rb,xop=0w543}
345         | (I.RegOp rb,I.LFD)  => floadx{ft,ra,rb,xop=0w599}         | (I.RegOp rb,I.LFD)  => floadx{ft,ra,rb,xop=0w599}
346         | (I.RegOp rb,I.LFDE) => floadx{ft,ra,rb,xop=0w607}         | (I.RegOp rb,I.LFDE) => floadx{ft,ra,rb,xop=0w607}
347           | (I.RegOp rb,I.LFDU) => floadx{ft,ra,rb,xop=0w631}
348         | (d,I.LFS)           => floadd{ft,ra,d,opcd=0w48}         | (d,I.LFS)           => floadd{ft,ra,d,opcd=0w48}
349         | (de,I.LFSE)         => floadde{ft,ra,de,opcd=0w62,xop=0w4}         | (de,I.LFSE)         => floadde{ft,ra,de,opcd=0w62,xop=0w4}
350         | (d,I.LFD)           => floadd{ft,ra,d,opcd=0w50}         | (d,I.LFD)           => floadd{ft,ra,d,opcd=0w50}
351         | (de,I.LFDE)         => floadde{ft,ra,de,opcd=0w62,xop=0w6}         | (de,I.LFDE)         => floadde{ft,ra,de,opcd=0w62,xop=0w6}
352           | (d,I.LFDU)          => floadd{ft,ra,d,opcd=0w51}
353         )         )
354    
355         (* integer stores *)         (* integer stores *)
# Line 534  Line 560 
560          (* Taken from a googled link:          (* Taken from a googled link:
561              http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/lwarx.htm              http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/lwarx.htm
562           *)           *)
563       | lwarx{oper:6=31, rt:GP 5, ra:GP 5, rb:GP 5, _:10=20, _:1=0}       | lwarx{oper:6=0w31, rt:GP 5, ra:GP 5, rb:GP 5, _:10=0w20, _:1=0}
564       | stwcx{oper:6=31, rs:GP 5, ra:GP 5, rb:GP 5, _:10=150, _:1=1}       | stwcx{oper:6=0w31, rs:GP 5, ra:GP 5, rb:GP 5, _:10=0w150, _:1=1}
565    
566     (*     (*
567      * Some helper functions for generating machine code.      * Some helper functions for generating machine code.

Legend:
Removed from v.1545  
changed lines
  Added in v.1546

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0