P4C
The P4 Compiler
Loading...
Searching...
No Matches
bf-asm/tofino/phv.h
1
17
18#ifndef BACKENDS_TOFINO_BF_ASM_TOFINO_PHV_H_
19#define BACKENDS_TOFINO_BF_ASM_TOFINO_PHV_H_
20
21#include "backends/tofino/bf-asm/phv.h"
22
23class Target::Tofino::Phv : public Target::Phv {
24 friend class ::Phv;
25 struct Register : public ::Phv::Register {
26 int parser_id() const override { return uid; }
27 int mau_id() const override { return uid < FIRST_TPHV ? uid : -1; }
28 int ixbar_id() const override { return uid < FIRST_TPHV ? uid : -1; }
29 int deparser_id() const override { return uid; }
30 };
31 void init_regs(::Phv &phv) override;
32 target_t type() const override { return TOFINO; }
33 unsigned mau_groupsize() const override { return 16; }
34
35 public:
36 enum {
37 NUM_PHV_REGS = 368,
38 FIRST_8BIT_PHV = 64,
39 COUNT_8BIT_PHV = 64,
40 FIRST_16BIT_PHV = 128,
41 COUNT_16BIT_PHV = 96,
42 FIRST_32BIT_PHV = 0,
43 COUNT_32BIT_PHV = 64,
44 FIRST_TPHV = 256,
45 FIRST_8BIT_TPHV = 288,
46 COUNT_8BIT_TPHV = 32,
47 FIRST_16BIT_TPHV = 320,
48 COUNT_16BIT_TPHV = 48,
49 FIRST_32BIT_TPHV = 256,
50 COUNT_32BIT_TPHV = 32,
51 };
52 static const bitvec tagalong_groups[8];
53};
54
55#endif /* BACKENDS_TOFINO_BF_ASM_TOFINO_PHV_H_ */
Definition bitvec.h:120