mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-21 02:10:17 +01:00
intel/elk: List all instructions that have BranchCtrl bit
Previously this bit was not clearly documented in PRMs, but gfx12 PRMs finally list all the instructions where it is present. Although it's unclear if it's functional for anything other than "if", "else", and "goto", we probably still should acknowledge its existence in other instructions. Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com> Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31747>
This commit is contained in:
parent
445df8d611
commit
cd4c328408
1 changed files with 20 additions and 3 deletions
|
|
@ -70,9 +70,26 @@ has_branch_ctrl(const struct intel_device_info *devinfo, enum elk_opcode opcode)
|
|||
if (devinfo->ver < 8)
|
||||
return false;
|
||||
|
||||
return opcode == ELK_OPCODE_IF ||
|
||||
opcode == ELK_OPCODE_ELSE;
|
||||
/* opcode == ELK_OPCODE_GOTO; */
|
||||
switch (opcode) {
|
||||
case ELK_OPCODE_IF:
|
||||
case ELK_OPCODE_ELSE:
|
||||
case ELK_OPCODE_GOTO:
|
||||
case ELK_OPCODE_BREAK:
|
||||
case ELK_OPCODE_CALL:
|
||||
case ELK_OPCODE_CALLA:
|
||||
case ELK_OPCODE_CONTINUE:
|
||||
case ELK_OPCODE_ENDIF:
|
||||
case ELK_OPCODE_HALT:
|
||||
case ELK_OPCODE_JMPI:
|
||||
case ELK_OPCODE_RET:
|
||||
case ELK_OPCODE_WHILE:
|
||||
case ELK_OPCODE_BRC:
|
||||
case ELK_OPCODE_BRD:
|
||||
/* TODO: "join" should also be here if added */
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue