summaryrefslogtreecommitdiff
path: root/powerpc/PrintAsm.ml
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-02-22 14:05:47 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-02-22 14:05:47 +0000
commite1030852452c9e59045806d3306bffb14742da3b (patch)
tree075dc8dedbeaa40aab5737045950c46136bcacf5 /powerpc/PrintAsm.ml
parent902c3f9defe6599c20c74cf0af646e270fe91122 (diff)
Simplified and cleaned up the passing of information from C2C to PrintAsm, as well as the handling of sections.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1822 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'powerpc/PrintAsm.ml')
-rw-r--r--powerpc/PrintAsm.ml13
1 files changed, 8 insertions, 5 deletions
diff --git a/powerpc/PrintAsm.ml b/powerpc/PrintAsm.ml
index ff7957d..f396a23 100644
--- a/powerpc/PrintAsm.ml
+++ b/powerpc/PrintAsm.ml
@@ -870,7 +870,10 @@ let print_function oc name code =
Hashtbl.clear current_function_labels;
float_literals := [];
jumptables := [];
- let (text, lit, jmptbl) = sections_for_function name in
+ let (text, lit, jmptbl) =
+ match C2C.atom_sections name with
+ | [t;l;j] -> (t, l, j)
+ | _ -> (Section_text, Section_literal, Section_jumptable) in
section oc text;
fprintf oc " .align 2\n";
if not (C2C.atom_is_static name) then
@@ -1093,11 +1096,11 @@ let print_var oc (name, v) =
match v.gvar_init with
| [] -> ()
| _ ->
- let init =
- match v.gvar_init with [Init_space _] -> false | _ -> true in
let sec =
- Sections.section_for_variable name init in
- let align =
+ match C2C.atom_sections name with
+ | [s] -> s
+ | _ -> Section_data true
+ and align =
match C2C.atom_alignof name with
| Some a -> log2 a
| None -> 3 in (* 8-alignment is a safe default *)