Changeset 1207
- Timestamp:
- Sep 12, 2011, 4:20:57 PM (8 years ago)
- Location:
- src
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ASM/Arithmetic.ma
r961 r1207 319 319 alias symbol "greater_than_or_equal" (instance 1) = "nat greater than or equal prop". 320 320 321 definition max_u ≝ λn,a,b. if lt_u n a b then b else a. 322 definition min_u ≝ λn,a,b. if lt_u n a b then a else b. 323 definition max_s ≝ λn,a,b. if lt_s n a b then b else a. 324 definition min_s ≝ λn,a,b. if lt_s n a b then a else b. 325 321 326 definition bitvector_of_bool: 322 327 ∀n: nat. ∀b: bool. BitVector (S n) ≝ -
src/Clight/toCminor.ma
r1206 r1207 660 660 ]) (OK ? s) params. 661 661 662 definition bigu ≝ mk_universe SymbolTag [[ 663 false;true;false;false; 664 false;false;false;false; 665 false;false;false;false; 666 false;false;false;false]] false. 667 668 (* FIXME: the temporary handling is a bit dodgy, I'm afraid. *) 669 definition translate_function : list (ident×region) → function → res internal_function ≝ 670 λglobals, f. 662 definition translate_function : universe SymbolTag → list (ident×region) → function → res internal_function ≝ 663 λtmpuniverse, globals, f. 671 664 let 〈vartypes, stacksize〉 ≝ characterise_vars globals f in 672 let tmp ≝ mk_tmpgen bigu [ ] in (* FIXME *)665 let tmp ≝ mk_tmpgen tmpuniverse [ ] in 673 666 do 〈s,tmp〉 ← translate_statement vartypes tmp (fn_body f); 674 667 do s ← alloc_params vartypes (fn_params f) s; … … 680 673 s). 681 674 682 definition translate_fundef : list (ident×region) → clight_fundef → res (fundef internal_function) ≝683 λ globals,f.675 definition translate_fundef : universe SymbolTag → list (ident×region) → clight_fundef → res (fundef internal_function) ≝ 676 λtmpuniverse,globals,f. 684 677 match f with 685 [ CL_Internal fn ⇒ do fn' ← translate_function globals fn; OK ? (Internal ? fn')678 [ CL_Internal fn ⇒ do fn' ← translate_function tmpuniverse globals fn; OK ? (Internal ? fn') 686 679 | CL_External fn argtys retty ⇒ OK ? (External ? (mk_external_function fn (signature_of_type argtys retty))) 687 680 ]. 681 682 (* TODO: move universe generation to higher level once we do runtime function 683 generation. Cheating a bit - we only need the new identifiers to be fresh 684 for individual functions. *) 685 include "Clight/fresh.ma". 688 686 689 687 definition clight_to_cminor : clight_program → res Cminor_program ≝ 690 688 λp. 689 let tmpuniverse ≝ universe_for_program p in 691 690 let fun_globals ≝ map … (λid. 〈id,Code〉) (prog_funct_names ?? p) in 692 691 let var_globals ≝ map … (λv. 〈\fst (\fst v), \snd (\fst v)〉) (prog_vars ?? p) in 693 692 let globals ≝ fun_globals @ var_globals in 694 transform_partial_program2 ???? (translate_fundef globals) (λi. OK ? (\fst i)) p.693 transform_partial_program2 ???? (translate_fundef tmpuniverse globals) (λi. OK ? (\fst i)) p.
Note: See TracChangeset
for help on using the changeset viewer.