How to define multipurpose (i32/f32) register in an LLVM backend? -


i'd define register multipurpose float , integer register on llvm back-end. know how that?

thanks!

i believe see how implemented in llvm backend architecture familiar with. example, arm has 32 d-registers (d0..d31) can hold either double float or vector values. in case registerclass definition quite straightforward:

// scalar double precision floating point / generic 64-bit vector register class. def dpr : registerclass<"arm", [f64, v8i8, v4i16, v2i32, v1i64, v2f32], 64,                         (sequence "d%u", 0, 31)> {   // allocate non-vfp2 registers d16-d31 first.   let altorders = [(rotl dpr, 16)];   let altorderselect = [{ return 1; }]; } 

Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -