Author: David Schneider <david.schnei...@picle.org> Branch: armhf-singlefloat Changeset: r67988:93c961fe1b79 Date: 2013-11-12 09:52 -0600 http://bitbucket.org/pypy/pypy/changeset/93c961fe1b79/
Log: add single precission VFP register locations diff --git a/rpython/jit/backend/arm/locations.py b/rpython/jit/backend/arm/locations.py --- a/rpython/jit/backend/arm/locations.py +++ b/rpython/jit/backend/arm/locations.py @@ -56,7 +56,7 @@ width = 2 * WORD def __repr__(self): - return 'vfp%d' % self.value + return 'vfp(d%d)' % self.value def is_core_reg(self): return False @@ -70,6 +70,14 @@ def is_float(self): return True +class SVFPRegisterLocation(VFPRegisterLocation): + """Single Precission VFP Register""" + _immutable_ = True + width = WORD + type = 'S' + + def __repr__(self): + return 'vfp(s%d)' % self.value class ImmLocation(AssemblerLocation): _immutable_ = True diff --git a/rpython/jit/backend/arm/registers.py b/rpython/jit/backend/arm/registers.py --- a/rpython/jit/backend/arm/registers.py +++ b/rpython/jit/backend/arm/registers.py @@ -1,8 +1,10 @@ from rpython.jit.backend.arm.locations import VFPRegisterLocation +from rpython.jit.backend.arm.locations import SVFPRegisterLocation from rpython.jit.backend.arm.locations import RegisterLocation registers = [RegisterLocation(i) for i in range(16)] vfpregisters = [VFPRegisterLocation(i) for i in range(16)] +svfpregisters = [SVFPRegisterLocation(i) for i in range(32)] [r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15] = registers @@ -10,6 +12,10 @@ [d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15] = vfpregisters +# single precission VFP registers, 32-bit +for i in range(32): + globals()['s%d' % i] = svfpregisters[i] + # aliases for registers fp = r11 ip = r12 @@ -27,6 +33,7 @@ callee_restored_registers = callee_resp + [pc] vfp_argument_regs = caller_vfp_resp = [d0, d1, d2, d3, d4, d5, d6, d7] +svfp_argument_regs = [globals()['s%i' % i] for i in range(16)] callee_vfp_resp = [d8, d9, d10, d11, d12, d13, d14, d15] callee_saved_vfp_registers = callee_vfp_resp _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit