aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/sparc/hipe_rtl_to_sparc.erl
diff options
context:
space:
mode:
authorMarcus Arendt <[email protected]>2015-01-19 15:13:41 +0100
committerMarcus Arendt <[email protected]>2015-01-19 15:13:41 +0100
commit1d0efcad490cb87c292c0505edbadb452b39b1a2 (patch)
treedbf93c900f2fb191fc672b369d43ed2d1bc5d2c6 /lib/hipe/sparc/hipe_rtl_to_sparc.erl
parent905824012cef106e7bd3796bff36a2aa04b58850 (diff)
parent677cb69c4c919e40d074df3bae40338a375a4731 (diff)
downloadotp-1d0efcad490cb87c292c0505edbadb452b39b1a2.tar.gz
otp-1d0efcad490cb87c292c0505edbadb452b39b1a2.tar.bz2
otp-1d0efcad490cb87c292c0505edbadb452b39b1a2.zip
Merge branch 'maint'
Diffstat (limited to 'lib/hipe/sparc/hipe_rtl_to_sparc.erl')
-rw-r--r--lib/hipe/sparc/hipe_rtl_to_sparc.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/hipe/sparc/hipe_rtl_to_sparc.erl b/lib/hipe/sparc/hipe_rtl_to_sparc.erl
index dc001f865e..fd21be3ae7 100644
--- a/lib/hipe/sparc/hipe_rtl_to_sparc.erl
+++ b/lib/hipe/sparc/hipe_rtl_to_sparc.erl
@@ -85,17 +85,17 @@ conv_insn(I, Map, Data) ->
end.
conv_fconv(I, Map, Data) ->
- %% Dst := (double)Src, where Dst is FP reg and Src is int reg
- {Src, Map1} = conv_src(hipe_rtl:fconv_src(I), Map), % exclude imm src
+ %% Dst := (double)Src, where Dst is FP reg and Src is GP reg or imm
+ {Src, Map1} = conv_src(hipe_rtl:fconv_src(I), Map),
{Dst, Map2} = conv_fpreg(hipe_rtl:fconv_dst(I), Map1),
I2 = mk_fconv(Src, Dst),
{I2, Map2, Data}.
mk_fconv(Src, Dst) ->
CSP = hipe_sparc:mk_temp(14, 'untagged'), % o6
- Disp = hipe_sparc:mk_simm13(100),
- [hipe_sparc:mk_store('stw', Src, CSP, Disp),
- hipe_sparc:mk_pseudo_fload(CSP, Disp, Dst, true),
+ Offset = 100,
+ mk_store('stw', Src, CSP, Offset) ++
+ [hipe_sparc:mk_pseudo_fload(CSP, hipe_sparc:mk_simm13(Offset), Dst, true),
hipe_sparc:mk_fp_unary('fitod', Dst, Dst)].
conv_fmove(I, Map, Data) ->