From 9527c4949fd94adb2567229413c70c19b663a118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= Date: Mon, 23 Jan 2012 01:41:36 +0100 Subject: [PATCH] i386: fix loading of LLOCAL floats These loads clobbered ebx as TinyCC wanted to load the address into st0. --- i386-gen.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/i386-gen.c b/i386-gen.c index a782de5..6635559 100644 --- a/i386-gen.c +++ b/i386-gen.c @@ -229,8 +229,10 @@ ST_FUNC void load(int r, SValue *sv) v1.type.t = VT_INT; v1.r = VT_LOCAL | VT_LVAL; v1.c.ul = fc; - load(r, &v1); fr = r; + if (!(reg_classes[fr] & RC_INT)) + fr = get_reg(RC_INT); + load(fr, &v1); } if ((ft & VT_BTYPE) == VT_FLOAT) { o(0xd9); /* flds */