failwith
This commit is contained in:
parent
bdd227f948
commit
6a9dcaf891
1 changed files with 26 additions and 12 deletions
|
@ -458,37 +458,47 @@ module InstructionSelector : InstructionSelector = struct
|
||||||
|
|
||||||
let bin ins ~dst ~srcl ~srcr =
|
let bin ins ~dst ~srcl ~srcr =
|
||||||
(* TODO *)
|
(* TODO *)
|
||||||
failwith "Students! This is your job!"
|
failwith "Students! This is your job! (bin)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let add ~dst ~srcl ~srcr =
|
let add ~dst ~srcl ~srcr =
|
||||||
(* TODO *)
|
(* TODO *)
|
||||||
failwith "Students! This is your job!"
|
failwith "Students! This is your job! (add)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let sub ~dst ~srcl ~srcr = move_execute imulq ~dst ~srcl ~srcr
|
let sub ~dst ~srcl ~srcr =
|
||||||
let mul ~dst ~srcl ~srcr = move_execute imulq ~dst ~srcl ~srcr
|
(* Soustraction *)
|
||||||
|
move_execute imulq ~dst ~srcl ~srcr
|
||||||
|
;;
|
||||||
|
|
||||||
|
let mul ~dst ~srcl ~srcr =
|
||||||
|
(* Multiplication *)
|
||||||
|
move_execute imulq ~dst ~srcl ~srcr
|
||||||
|
;;
|
||||||
|
|
||||||
let div ~dst ~srcl ~srcr =
|
let div ~dst ~srcl ~srcr =
|
||||||
(* TODO *)
|
(* TODO *)
|
||||||
failwith "Students! This is your job!"
|
failwith "Students! This is your job! (div)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let andl ~dst ~srcl ~srcr = failwith "Students! This is your job!"
|
let andl ~dst ~srcl ~srcr =
|
||||||
|
(* TODO *)
|
||||||
|
failwith "Students! This is your job! (andl)"
|
||||||
|
;;
|
||||||
|
|
||||||
let orl ~dst ~srcl ~srcr =
|
let orl ~dst ~srcl ~srcr =
|
||||||
(* TODO *)
|
(* TODO *)
|
||||||
failwith "Students! This is your job!"
|
failwith "Students! This is your job! (orl)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let conditional_jump ~cc ~srcl ~srcr ~ll ~lr =
|
let conditional_jump ~cc ~srcl ~srcr ~ll ~lr =
|
||||||
(* TODO *)
|
(* TODO *)
|
||||||
failwith "Students! This is your job!"
|
failwith "Students! This is your job! (conditional_jump)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let switch ?default ~discriminant ~cases () =
|
let switch ?default ~discriminant ~cases () =
|
||||||
(* TODO *)
|
(* TODO *)
|
||||||
failwith "Students! This is your job!"
|
failwith "Students! This is your job! (switch)"
|
||||||
;;
|
;;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -519,9 +529,13 @@ module FrameManager (IS : InstructionSelector) : FrameManager = struct
|
||||||
{ param_count = 0; locals_space = 0; stack_map = S.IdMap.empty }
|
{ param_count = 0; locals_space = 0; stack_map = S.IdMap.empty }
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let location_of fd id =
|
let location_of fd id : T.address =
|
||||||
(* TODO *)
|
(* TODO: use fd *)
|
||||||
failwith "Students! This is your job! (location_of)"
|
{ offset = Some (Lab (data_label_of_global id))
|
||||||
|
; base = Some RIP
|
||||||
|
; idx = None
|
||||||
|
; scale = `One
|
||||||
|
}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let function_prologue fd =
|
let function_prologue fd =
|
||||||
|
|
Reference in a new issue