Changeset 2537 for src/joint/Joint.ma


Ignore:
Timestamp:
Dec 6, 2012, 1:24:29 PM (8 years ago)
Author:
tranquil
Message:

rolled back changes on calls in joint. Now the save_frame parameter
has a switch that tells whether the call is an ident one or a pointer one.
The idea is that in the latter case, from LTL onwards, the caller address is not saved (as it is done by explicit instructions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/joint/Joint.ma

    r2532 r2537  
    8080 ; snd_arg : Type[0]  (* second argument of binary op *)
    8181 ; pair_move: Type[0] (* argument of move instructions *)
    82  ; call_spec: Type[0] (* type of call (ident/pointer) *)
    8382 ; call_args: Type[0] (* arguments of function calls *)
    8483 ; call_dest: Type[0] (* possible destination of function computation *)
     
    108107  | LOAD: acc_a_reg p → dpl_arg p → dph_arg p → joint_seq p globals
    109108  | STORE: dpl_arg p → dph_arg p → acc_a_arg p → joint_seq p globals
    110   | CALL: call_spec p → call_args p → call_dest p → joint_seq p globals
     109  | CALL: (ident + (dpl_arg p × (dph_arg p))) → call_args p → call_dest p → joint_seq p globals
    111110  | extension_seq : ext_seq p → joint_seq p globals.
    112111
     
    170169  | RETURN: joint_fin_step p
    171170  | TAILCALL :
    172     has_tailcalls p → call_spec p
     171    has_tailcalls p → (ident + (dpl_arg p × (dph_arg p)))
    173172    call_args p → joint_fin_step p.
    174173
Note: See TracChangeset for help on using the changeset viewer.