Ignore:
Timestamp:
Jan 19, 2011, 6:23:27 PM (9 years ago)
Author:
campbell
Message:

Port memory spaces changes to latest prototype compiler.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Deliverables/D2.3/8051-memoryspaces-branch/src/clight/clightToCminor.ml

    r453 r460  
    2626  | Tvoid       -> Type_void
    2727  | Tfloat _    -> Type_ret Sig_float (*Not supported*)
    28   | Tpointer _ | Tarray (_,_) | Tstruct (_,_) | Tunion (_,_) -> Type_ret Sig_ptr
     28  | Tpointer _ | Tarray _ | Tstruct (_,_) | Tunion (_,_) -> Type_ret Sig_ptr
    2929  | _           -> Type_ret Sig_int
    3030
     
    3333      Sig_float (*Not supported but needed for external function from library*)
    3434  | Tvoid       -> assert false
    35   | Tpointer _ | Tstruct (_,_) | Tunion (_,_) | Tarray(_,_) -> Sig_ptr
     35  | Tpointer _ | Tstruct (_,_) | Tunion (_,_) | Tarray _ -> Sig_ptr
    3636  | _           -> Sig_int
    3737
     
    4646  | Tint (I32,Signed)   -> Memory.MQ_int32
    4747  | Tint (I32,Unsigned) -> assert false (*FIXME why not int32unsigned exists ?*)
    48   | Tpointer _ | Tarray (_,_) | Tstruct (_,_) | Tunion (_,_) -> ptr_mq
     48  | Tpointer _ | Tarray _ | Tstruct (_,_) | Tunion (_,_) -> ptr_mq
    4949  | Tcomp_ptr _         -> assert false (*FIXME what is this ? *)               
    5050
     
    7676  | Tint (I32,_)                -> 4
    7777  | Tpointer _                  -> ptr_size     
    78   | Tarray (c,s)                -> s*(size_of_ctype c)
     78  | Tarray (_,c,s)                -> s*(size_of_ctype c)
    7979  | Tstruct (_,lst)             ->
    8080      List.fold_left
     
    8888  | Tcomp_ptr _                 -> assert false (*FIXME what is this ?*)
    8989
    90 let translate_global_vars ((id,lst),_) = (id,init_to_data lst)
     90let translate_global_vars (((id,lst),_),_) = (id,init_to_data lst)
    9191
    9292let translate_unop t = function
     
    110110  | (Tint(_,_),Tint(_,_))       -> Op2 (Op_add,e1,e2)
    111111  | (Tfloat _,Tfloat _)         -> assert false (*Not supported*)
    112   | (Tpointer t,Tint(_,_))      ->
     112  | (Tpointer (_,t),Tint(_,_))      ->
    113113      Op2 (Op_addp,e1, Op2 (Op_mul,e2,Cst (Cst_int (size_of_ctype t))))
    114   | (Tint(_,_),Tpointer t)      ->
     114  | (Tint(_,_),Tpointer (_,t))      ->
    115115      Op2 (Op_addp,Op2 (Op_mul,e1,Cst (Cst_int (size_of_ctype t))),e2)
    116   | (Tarray (t,_),Tint(_,_))    ->
     116  | (Tarray (_,t,_),Tint(_,_))    ->
    117117      Op2 (Op_addp,e1,Op2 (Op_mul,e2,(Cst (Cst_int (size_of_ctype t)))))
    118   | (Tint(_,_),Tarray(t,_))     ->
     118  | (Tint(_,_),Tarray(_,t,_))     ->
    119119      Op2 (Op_addp,e2,Op2 (Op_mul,e1,(Cst (Cst_int (size_of_ctype t)))))
    120120  | _                           -> assert false (*Type error*)
     
    123123  | (Tint(_,_),Tint(_,_))       -> Op2 (Op_sub,e1,e2)
    124124  | (Tfloat _,Tfloat _)         -> assert false (*Not supported*)
    125   | (Tpointer t,Tint(_,_))      ->
     125  | (Tpointer (_,t),Tint(_,_))      ->
    126126      Op2 (Op_subp,e1,Op2 (Op_mul,e2,(Cst (Cst_int (size_of_ctype t)))))
    127   | (Tint(_,_),Tpointer t)      ->
     127  | (Tint(_,_),Tpointer (_,t))      ->
    128128      Op2 (Op_subp,Op2 (Op_mul,e1,(Cst (Cst_int (size_of_ctype t)))),e2)
    129   | (Tarray (t,_),Tint(_,_))    ->
     129  | (Tarray (_,t,_),Tint(_,_))    ->
    130130      Op2 (Op_subp,e1,Op2 (Op_mul,e2,(Cst (Cst_int (size_of_ctype t)))))
    131   | (Tint(_,_),Tarray(t,_))     ->
     131  | (Tint(_,_),Tarray(_,t,_))     ->
    132132      Op2 (Op_subp,e2,Op2 (Op_mul,e1,(Cst (Cst_int (size_of_ctype t)))))
    133133  | _                           -> assert false (*Type error*)
     
    177177
    178178let is_struct = function
    179   | Tarray(_,_) | Tstruct (_,_) | Tunion(_,_) -> true
     179  | Tarray _ | Tstruct (_,_) | Tunion(_,_) -> true
    180180  | _ -> false
    181181
    182182let is_ptr_to_struct = function
    183   | Tpointer t when is_struct t -> true
     183  | Tpointer (_,t) when is_struct t -> true
    184184  | _ -> false 
    185185
     
    450450
    451451let is_struct = function
    452   | Tarray (_,_) | Tstruct (_,_) | Tunion (_,_) -> true
     452  | Tarray _ | Tstruct (_,_) | Tunion (_,_) -> true
    453453  | _ -> false
    454454
     
    519519
    520520let translate p =
    521   let globals = List.map (fun p -> (fst (fst p),snd p) ) p.prog_vars in
     521  let globals = List.map (fun p -> (fst (fst (fst p)),snd p) ) p.prog_vars in
    522522  let p =
    523523    {Cminor.vars   = List.map translate_global_vars p.prog_vars;
Note: See TracChangeset for help on using the changeset viewer.