[Mono-dev] How do I use scratch registers in op code implementation
Braddock Gaskill (Contractor)
braddock.gaskill at apx-labs.com
Tue Aug 21 22:21:27 UTC 2012
How do I take a general purpose register out of the available set for the register allocator?
I see with xmm15 on amd64 that you cleared the corresponding bit in MONO_ARCH_CALLEE_FREGS.
Can I just do the same with MONO_ARCH_CALLEE_REGS? The allocator never touches callER saved regs? (why not?)
From: Rodrigo Kumpera [kumpera at gmail.com]
Sent: Thursday, August 16, 2012 8:39 AM
To: Braddock Gaskill (Contractor)
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] How do I use scratch registers in op code implementation
You can take a register out of the available set and the register allocator will never use it.
We do that with xmm reg 15 on amd64.
On Thu, Aug 16, 2012 at 11:04 AM, Braddock Gaskill (Contractor) <braddock.gaskill at apx-labs.com<mailto:braddock.gaskill at apx-labs.com>> wrote:
We're working on the mono port to the Tilera TILE-Gx cpu.
When implementing IR op codes in mono_arch_output_basic_block() we sometimes need to use a scratch register. For example, TILE-Gx has no single membase + offset load instruction - we must do the address addition as a separate step.
How do we inform the runtime that we have/will clobber a register? I know that if we clobber a source register we can set the clob field in the machine description file, but what if we use another register? Is it possible to reserve a register for this purpose?
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com<mailto:Mono-devel-list at lists.ximian.com>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list