[pypy-svn] pypy arm-backed-float: return condition
bivab
commits-noreply at bitbucket.org
Wed Feb 2 13:49:48 CET 2011
Author: David Schneider <david.schneider at picle.org>
Branch: arm-backed-float
Changeset: r41545:b966311db125
Date: 2011-01-18 18:26 +0100
http://bitbucket.org/pypy/pypy/changeset/b966311db125/
Log: return condition
diff --git a/pypy/jit/backend/arm/assembler.py b/pypy/jit/backend/arm/assembler.py
--- a/pypy/jit/backend/arm/assembler.py
+++ b/pypy/jit/backend/arm/assembler.py
@@ -181,7 +181,8 @@
j += 1
res = enc[j]
- assert res in [self.INT_TYPE, self.REF_TYPE], 'location type is not supported'
+ assert res in [self.FLOAT_TYPE, self.INT_TYPE, self.REF_TYPE], 'location type is not supported'
+ res_type = res
j += 1
res = enc[j]
if res == self.IMM_LOC:
@@ -192,7 +193,10 @@
loc = regalloc.frame_manager.frame_pos(stack_loc, INT)
j += 4
else: # REG_LOC
- loc = r.all_regs[ord(res)]
+ if res_type == self.FLOAT_TYPE:
+ loc = r.all_vfp_regs[ord(res)]
+ else:
+ loc = r.all_regs[ord(res)]
j += 1
locs.append(loc)
return locs
diff --git a/pypy/jit/backend/arm/opassembler.py b/pypy/jit/backend/arm/opassembler.py
--- a/pypy/jit/backend/arm/opassembler.py
+++ b/pypy/jit/backend/arm/opassembler.py
@@ -797,12 +797,14 @@
self.mc.VPUSH([temp.value])
# res is lower register than r.ip
self.mc.POP([res.value, r.ip.value])
+ return fcond
def emit_op_cast_int_to_float(self, op, arglocs, regalloc, fcond):
arg, temp, res = arglocs
self.mc.PUSH([arg.value, r.ip.value])
self.mc.VPOP([temp.value])
self.mc.VCVT_int_to_float(res.value, temp.value)
+ return fcond
class ResOpAssembler(GuardOpAssembler, IntOpAsslember,
OpAssembler, UnaryIntOpAssembler,
More information about the Pypy-commit
mailing list