[llvm-dev] Instructions with register constraints
Krzysztof Parzyszek via llvm-dev
llvm-dev at lists.llvm.org
Mon Mar 14 07:53:30 PDT 2016
On 3/14/2016 1:51 AM, Pei-Shiang Hung via llvm-dev wrote:
> I'm porting a new LLVM target.
> My ISA has an 'add333 $rd3, $rt3, $rs3 ' instruction which acts as
> 'add $rd5, $rt5, $rs5'.
> $rd5, $rt5, and $rs5 are register operands with 5-bit encoding space,
> thus they can access register from $r0 to $r31 belong to GPR register
> class.
> However, $rd3, $rt3, and $rs3 are register operands with only 3-bit
> encoding space; in other word, they can only access registers from $r0
> to $r7 belong to the same GPR register class.
> I have no idea how to describe this kind of register constraints.
You can define a "3-bit" subclass of the "5-bit" register class. For
example, if the registers $r0..$r31 belong to a register class GPR5, you
can define a register class GPR3 that is contained in GPR5, that only
has $r0..$r7 as members.
-Krzysztof
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev
mailing list