From 089dea355a28da44376ce4f5195baa4b4e0b217d Mon Sep 17 00:00:00 2001 From: jiang <30155751@qq.com> Date: Sat, 3 May 2014 23:51:09 +0800 Subject: tcc on i386 are still having problems at work.Thank Roy report again. Struck on several variables can be connected to commit in the register. I am worried whether tcc can run the os. Since my machine is ubuntu 64 bits I can test my machine. --- arm-gen.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'arm-gen.c') diff --git a/arm-gen.c b/arm-gen.c index 6da1706..567c868 100644 --- a/arm-gen.c +++ b/arm-gen.c @@ -61,7 +61,7 @@ #define RC_IRET RC_R0 /* function return: integer register */ #define RC_LRET RC_R1 /* function return: second integer register */ #define RC_FRET RC_F0 /* function return: float register */ - +#define RC_MASK (RC_INT|RC_FLOAT) /* pretty names for the registers */ enum { TREG_R0 = 0, @@ -540,6 +540,14 @@ void load(int r, SValue *sv) v = fr & VT_VALMASK; if (fr & VT_LVAL) { uint32_t base = 0xB; // fp + if(fr & VT_TMP){ + int size, align; + if((ft & VT_BTYPE) == VT_FUNC) + size = PTR_SIZE; + else + size = type_size(&sv->type, &align); + loc_stack(size, 0); + } if(v == VT_LLOCAL) { v1.type.t = VT_PTR; v1.r = VT_LOCAL | VT_LVAL; -- cgit v1.3.1