diff options
| author | Xavier Leroy <xavier.leroy@inria.fr> | 2011-12-18 10:00:56 +0000 |
|---|---|---|
| committer | Xavier Leroy <xavier.leroy@inria.fr> | 2011-12-18 10:00:56 +0000 |
| commit | ca0c2369197920fa945f03d71c918dc62bb1ae0b (patch) | |
| tree | 538716b803dde97e9dab3744546e8b2ae97174e7 /asmcomp/sparc/emit.mlp | |
| parent | 4af724cf549549598f1e8d02babaf91d62e24a58 (diff) | |
| download | ocaml-ca0c2369197920fa945f03d71c918dc62bb1ae0b.tar.gz | |
PR#4869: rare collisions between assembly labels for code and data
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11887 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'asmcomp/sparc/emit.mlp')
| -rw-r--r-- | asmcomp/sparc/emit.mlp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/asmcomp/sparc/emit.mlp b/asmcomp/sparc/emit.mlp index 52a8bc60a8..ef3fb9a8e3 100644 --- a/asmcomp/sparc/emit.mlp +++ b/asmcomp/sparc/emit.mlp @@ -98,6 +98,9 @@ let label_prefix = let emit_label lbl = emit_string label_prefix; emit_int lbl +let emit_data_label lbl = + emit_string label_prefix; emit_string "d"; emit_int lbl + (* Output a pseudo-register *) let emit_reg r = @@ -714,7 +717,7 @@ let emit_item = function | Cdefine_symbol s -> `{emit_symbol s}:\n` | Cdefine_label lbl -> - `{emit_label (lbl + 100000)}:\n` + `{emit_data_label lbl}:\n` | Cint8 n -> ` .byte {emit_int n}\n` | Cint16 n -> @@ -730,7 +733,7 @@ let emit_item = function | Csymbol_address s -> ` .word {emit_symbol s}\n` | Clabel_address lbl -> - ` .word {emit_label (lbl + 100000)}\n` + ` .word {emit_data_label lbl}\n` | Cstring s -> emit_string_directive " .ascii " s | Cskip n -> |
