aboutsummaryrefslogtreecommitdiff
path: root/arm-gen.c
diff options
context:
space:
mode:
authorDaniel Glöckner <daniel-gl@gmx.net>2013-02-03 17:51:33 +0100
committerDaniel Glöckner <daniel-gl@gmx.net>2013-02-03 17:51:33 +0100
commit506193724f8a1e67de9396486fb4fd090b9f61bb (patch)
treeee79c3713ac30788f438bf6510ba3a10ae3aa51e /arm-gen.c
parent6f4983af5b817e55bff19ea94efa85f6ff395c4d (diff)
downloadtinycc-506193724f8a1e67de9396486fb4fd090b9f61bb.tar.gz
tinycc-506193724f8a1e67de9396486fb4fd090b9f61bb.tar.bz2
arm: fix conversion from integer to float/double with VFP
The source register was not encoded in the instruction.
Diffstat (limited to 'arm-gen.c')
-rw-r--r--arm-gen.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arm-gen.c b/arm-gen.c
index e9b8309..37cd304 100644
--- a/arm-gen.c
+++ b/arm-gen.c
@@ -1847,7 +1847,7 @@ ST_FUNC void gen_cvt_itof1(int t)
#ifdef TCC_ARM_VFP
r2=vfpr(vtop->r=get_reg(RC_FLOAT));
o(0xEE000A10|(r<<12)|(r2<<16)); /* fmsr */
- r2<<=12;
+ r2|=r2<<12;
if(!(vtop->type.t & VT_UNSIGNED))
r2|=0x80; /* fuitoX -> fsituX */
o(0xEEB80A40|r2|T2CPR(t)); /* fYitoX*/