Skip to content

Commit

Permalink
Merge from trunk "PR#4869: rare collisions between assembly labels fo…
Browse files Browse the repository at this point in the history
…r code and data".
  • Loading branch information
bmeurer committed Dec 18, 2011
1 parent ec596d9 commit eceeefe
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions asmcomp/arm/emit.mlp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ let fastcode_flag = ref true
let emit_label lbl =
emit_string ".L"; emit_int lbl

let emit_data_label lbl =
emit_string ".Ld"; emit_int lbl

(* Symbols *)

let emit_symbol s =
Expand Down Expand Up @@ -843,15 +846,15 @@ let fundecl fundecl =
let emit_item = function
Cglobal_symbol s -> ` .globl {emit_symbol s}\n`;
| Cdefine_symbol s -> `{emit_symbol s}:\n`
| Cdefine_label lbl -> `{emit_label (100000 + lbl)}:\n`
| Cdefine_label lbl -> `{emit_data_label lbl}:\n`
| Cint8 n -> ` .byte {emit_int n}\n`
| Cint16 n -> ` .short {emit_int n}\n`
| Cint32 n -> ` .long {emit_int32 (Nativeint.to_int32 n)}\n`
| Cint n -> ` .long {emit_int32 (Nativeint.to_int32 n)}\n`
| Csingle f -> ` .single {emit_string f}\n`
| Cdouble f -> ` .double {emit_string f}\n`
| Csymbol_address s -> ` .word {emit_symbol s}\n`
| Clabel_address lbl -> ` .word {emit_label (100000 + lbl)}\n`
| Clabel_address lbl -> ` .word {emit_data_label lbl}\n`
| Cstring s -> emit_string_directive " .ascii " s
| Cskip n -> if n > 0 then ` .space {emit_int n}\n`
| Calign n -> ` .align {emit_int(Misc.log2 n)}\n`
Expand Down

0 comments on commit eceeefe

Please sign in to comment.