Displaying 3 results from an estimated 3 matches for "gpr13class".
2010 Jan 04
5
[LLVMdev] How to bind a register variable with a given general purpose register?
Hi everyone,
There are 16 GPRs in my RISC, but in fact GPR13 is read-only and connected
to output of an A/D converter.
It would be very convenient if i could bind a register variable with GPR13.
Because i am a newbie i don't know how my llvm backend can support that.
I plan to implement it as below.
A. first declare a global variable in c-code
int ADC asm("GPR13");
B. If
2010 Jan 04
0
[LLVMdev] 答复: [LLVMdev] How to bind a register variable with a given general purpose register?
..."int ADC __attribute__((GPR13));"
2. add a intrinsic functions like "llvm.zhu.readadcreg()".
3. map any read to the variable marked with __attribute__((GPR13)) to
llvm.zhu.readadcreg() instead of "load" instruction
4. assign gpr13 to a special register class like "gpr13class" instead of
gprclass, so gpr13 will not be allocated as other gpr.
5. lower instrinisic functions "llvm.zhu.readadcreg()" to register node
"gpr13" in your backend.
regards
--ether
On 2010-1-4 18:01, Demon(Xiangyang) Zhu 朱向阳 wrote:
> Hi Ether,
>
> The hardware ha...
2010 Jan 04
0
[LLVMdev] 答复: 答复: [LLVMdev] How to bind a register variable with a given general purpose register?
...ibute__((GPR13));"
> 2. add a intrinsic functions like "llvm.zhu.readadcreg()".
> 3. map any read to the variable marked with __attribute__((GPR13)) to
> llvm.zhu.readadcreg() instead of "load" instruction
> 4. assign gpr13 to a special register class like "gpr13class" instead of
> gprclass, so gpr13 will not be allocated as other gpr.
> 5. lower instrinisic functions "llvm.zhu.readadcreg()" to register node
> "gpr13" in your backend.
>
> regards
>
> --ether
>
> On 2010-1-4 18:01, Demon(Xiangyang) Zhu 朱向阳 wrote...