P4C
The P4 Compiler
Loading...
Searching...
No Matches
bf-asm/jbay/phv.h
1
17
18#ifndef BACKENDS_TOFINO_BF_ASM_JBAY_PHV_H_
19#define BACKENDS_TOFINO_BF_ASM_JBAY_PHV_H_
20
21#include "backends/tofino/bf-asm/phv.h"
22
23class Target::JBay::Phv : public Target::Phv {
24 friend class ::Phv;
25 struct Register : public ::Phv::Register {
26 short parser_id_, deparser_id_;
27 int parser_id() const override { return parser_id_; }
28 int mau_id() const override { return uid < 280 ? uid : -1; }
29 int ixbar_id() const override {
30 static const int ixbar_permute[16] = {0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, -6, -6, 0, 0};
31 return deparser_id_ + ixbar_permute[deparser_id_ & 0xf];
32 }
33 int deparser_id() const override { return deparser_id_; }
34 };
35 void init_regs(::Phv &phv) override;
36 target_t type() const override { return JBAY; }
37 unsigned mau_groupsize() const override { return 20; }
38};
39
40class Target::Tofino2H::Phv : public Target::JBay::Phv {
41 target_t type() const override { return TOFINO2H; }
42};
43
44class Target::Tofino2M::Phv : public Target::JBay::Phv {
45 target_t type() const override { return TOFINO2M; }
46};
47
48class Target::Tofino2U::Phv : public Target::JBay::Phv {
49 target_t type() const override { return TOFINO2U; }
50};
51
52class Target::Tofino2A0::Phv : public Target::JBay::Phv {
53 target_t type() const override { return TOFINO2A0; }
54};
55
56#endif /* BACKENDS_TOFINO_BF_ASM_JBAY_PHV_H_ */