diff options
Diffstat (limited to 'asmcomp/emit_sparc.mlp')
-rw-r--r-- | asmcomp/emit_sparc.mlp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/asmcomp/emit_sparc.mlp b/asmcomp/emit_sparc.mlp index ae6c00a5bb..5b005ea597 100644 --- a/asmcomp/emit_sparc.mlp +++ b/asmcomp/emit_sparc.mlp @@ -523,9 +523,11 @@ let fundecl fundecl = (* Emission of data *) let emit_item = function - Clabel lbl -> - ` .global _{emit_symbol lbl}\n`; - `_{emit_symbol lbl}:\n` + Cdefine_symbol s -> + ` .global _{emit_symbol s}\n`; + `_{emit_symbol s}:\n` + | Cdefine_label lbl -> + `{emit_label (lbl + 10000)}:\n` | Cint8 n -> ` .byte {emit_int n}\n` | Cint16 n -> @@ -534,8 +536,10 @@ let emit_item = function ` .word {emit_int n}\n` | Cfloat f -> ` .double 0r{emit_string f}\n` - | Caddress lbl -> - ` .word _{emit_symbol lbl}\n` + | Csymbol_address s -> + ` .word _{emit_symbol s}\n` + | Clabel_address s -> + ` .word {emit_label (lbl + 10000)}\n` | Cstring s -> let l = String.length s in if l = 0 then () |