Lines Matching defs:rs

146 fun entry_blk rs n =
149 src = rs @ [IR.REG (IR.fromAlias IR.fp), IR.REG (IR.fromAlias IR.ip),
161 fun exit_blk rs =
163 {oper = IR.msub, dst = [IR.REG (IR.fromAlias IR.sp)], src = [IR.REG (IR.fromAlias IR.fp), IR.WCONST (Arbint.fromInt (4* (3 + length rs)))]},
164 {oper = IR.mpop, dst = rs @ [IR.REG (IR.fromAlias IR.fp), IR.REG (IR.fromAlias IR.sp), IR.REG (IR.fromAlias IR.pc)],
390 fun compute_fcall_info ((outer_ins,outer_outs),(caller_src,caller_dst),(callee_ins,callee_outs),rs,context) =
399 val to_be_stored = S.difference (list2set (List.map REG (S.listItems rs)), pair2set caller_dst);
400 val rs' = S.intersection(to_be_stored, S.union (pair2set outer_outs, list2set context));
401 val pre_ins = trim_pair (PAIR (caller_src, set2pair rs'));
402 val stored = (list2pair o to_stack o set2list) rs';
407 val post_outs = trim_pair(PAIR (caller_dst, set2pair rs'));
408 val context' = set2list (S.difference (list2set context, rs'))
410 ((pre_ins,pre_outs),(body_ins,body_outs),(post_ins,post_outs),set2list rs',context')
424 val {ir = (callee_ins, callee_ir, callee_outs), regs = rs, localNum = n, def = f_def, ...} = declFuncs.getFunc fname;
426 val ((pre_ins,pre_outs),(body_ins,body_outs),(post_ins,post_outs),rs',context) =
427 compute_fcall_info ((outer_ins,outer_outs),(caller_src,caller_dst),(callee_ins,callee_outs),rs,#context outer_info);
435 entry_blk rs' n @
444 exit_blk rs',
464 val rs = S.addList (S.empty regAllocation.intOrder, get_modified_regs ir0);
465 val (ins1,ir1,outs1, localNum) = calculate_relative_address (ins,ir0,outs,S.numItems rs);
467 declFuncs.putFunc (fname, ftype, (ins1,ir1,outs1), rs, localNum, (hd defs)));