66 lines
2.7 KiB
Plaintext
66 lines
2.7 KiB
Plaintext
|
|
require '_h2ph_pre.ph';
|
||
|
|
|
||
|
|
no warnings qw(redefine misc);
|
||
|
|
|
||
|
|
unless(defined(&__ASM_SVE_CONTEXT_H)) {
|
||
|
|
eval 'sub __ASM_SVE_CONTEXT_H () {1;}' unless defined(&__ASM_SVE_CONTEXT_H);
|
||
|
|
require 'linux/types.ph';
|
||
|
|
eval 'sub __SVE_VQ_BYTES () {16;}' unless defined(&__SVE_VQ_BYTES);
|
||
|
|
eval 'sub __SVE_VQ_MIN () {1;}' unless defined(&__SVE_VQ_MIN);
|
||
|
|
eval 'sub __SVE_VQ_MAX () {512;}' unless defined(&__SVE_VQ_MAX);
|
||
|
|
eval 'sub __SVE_VL_MIN () {( &__SVE_VQ_MIN * &__SVE_VQ_BYTES);}' unless defined(&__SVE_VL_MIN);
|
||
|
|
eval 'sub __SVE_VL_MAX () {( &__SVE_VQ_MAX * &__SVE_VQ_BYTES);}' unless defined(&__SVE_VL_MAX);
|
||
|
|
eval 'sub __SVE_NUM_ZREGS () {32;}' unless defined(&__SVE_NUM_ZREGS);
|
||
|
|
eval 'sub __SVE_NUM_PREGS () {16;}' unless defined(&__SVE_NUM_PREGS);
|
||
|
|
eval 'sub __sve_vl_valid {
|
||
|
|
my($vl) = @_;
|
||
|
|
eval q((($vl) % &__SVE_VQ_BYTES == 0 && ($vl) >= &__SVE_VL_MIN && ($vl) <= &__SVE_VL_MAX));
|
||
|
|
}' unless defined(&__sve_vl_valid);
|
||
|
|
eval 'sub __sve_vq_from_vl {
|
||
|
|
my($vl) = @_;
|
||
|
|
eval q((($vl) / &__SVE_VQ_BYTES));
|
||
|
|
}' unless defined(&__sve_vq_from_vl);
|
||
|
|
eval 'sub __sve_vl_from_vq {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q((($vq) * &__SVE_VQ_BYTES));
|
||
|
|
}' unless defined(&__sve_vl_from_vq);
|
||
|
|
eval 'sub __SVE_ZREG_SIZE {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q((( &__u32)($vq) * &__SVE_VQ_BYTES));
|
||
|
|
}' unless defined(&__SVE_ZREG_SIZE);
|
||
|
|
eval 'sub __SVE_PREG_SIZE {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q((( &__u32)($vq) * ( &__SVE_VQ_BYTES / 8)));
|
||
|
|
}' unless defined(&__SVE_PREG_SIZE);
|
||
|
|
eval 'sub __SVE_FFR_SIZE {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q( &__SVE_PREG_SIZE($vq));
|
||
|
|
}' unless defined(&__SVE_FFR_SIZE);
|
||
|
|
eval 'sub __SVE_ZREGS_OFFSET () {0;}' unless defined(&__SVE_ZREGS_OFFSET);
|
||
|
|
eval 'sub __SVE_ZREG_OFFSET {
|
||
|
|
my($vq, $n) = @_;
|
||
|
|
eval q(( &__SVE_ZREGS_OFFSET + &__SVE_ZREG_SIZE($vq) * ($n)));
|
||
|
|
}' unless defined(&__SVE_ZREG_OFFSET);
|
||
|
|
eval 'sub __SVE_ZREGS_SIZE {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q(( &__SVE_ZREG_OFFSET($vq, &__SVE_NUM_ZREGS) - &__SVE_ZREGS_OFFSET));
|
||
|
|
}' unless defined(&__SVE_ZREGS_SIZE);
|
||
|
|
eval 'sub __SVE_PREGS_OFFSET {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q(( &__SVE_ZREGS_OFFSET + &__SVE_ZREGS_SIZE($vq)));
|
||
|
|
}' unless defined(&__SVE_PREGS_OFFSET);
|
||
|
|
eval 'sub __SVE_PREG_OFFSET {
|
||
|
|
my($vq, $n) = @_;
|
||
|
|
eval q(( &__SVE_PREGS_OFFSET($vq) + &__SVE_PREG_SIZE($vq) * ($n)));
|
||
|
|
}' unless defined(&__SVE_PREG_OFFSET);
|
||
|
|
eval 'sub __SVE_PREGS_SIZE {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q(( &__SVE_PREG_OFFSET($vq, &__SVE_NUM_PREGS) - &__SVE_PREGS_OFFSET($vq)));
|
||
|
|
}' unless defined(&__SVE_PREGS_SIZE);
|
||
|
|
eval 'sub __SVE_FFR_OFFSET {
|
||
|
|
my($vq) = @_;
|
||
|
|
eval q(( &__SVE_PREGS_OFFSET($vq) + &__SVE_PREGS_SIZE($vq)));
|
||
|
|
}' unless defined(&__SVE_FFR_OFFSET);
|
||
|
|
}
|
||
|
|
1;
|