gbe: add AtomicA64 instructions with stateless access

Graphics / Beignet - Luo Xionghu [intel.com] - 8 November 2016 06:38 UTC

add SEL_OP_ATOMICA64 for gen8 instruction selection and add ATOMICA64 for gen8 encoder accordingly, handle both simd8 and simd16 usage. for local type atomic, still use bti 254.

v2: remove useless code in stateless A64 atomic; add mising static address mode process; remove flag set since only dynamic address mode need it.
v3: add gen8_atomic_a64 field in Gen8NativeInstruction to be compatible with gen7_atomic_op.

ea73a54 gbe: add AtomicA64 instructions with stateless access.
backend/src/backend/gen/gen_mesa_disasm.c | 2 +-
backend/src/backend/gen8_context.cpp | 11 ++
backend/src/backend/gen8_context.hpp | 1 +
backend/src/backend/gen8_encoder.cpp | 38 ++++++
backend/src/backend/gen8_encoder.hpp | 2 +
backend/src/backend/gen8_instruction.hpp | 14 +++
backend/src/backend/gen_context.cpp | 3 +
backend/src/backend/gen_context.hpp | 1 +
backend/src/backend/gen_defs.hpp | 1 +
backend/src/backend/gen_encoder.cpp | 8 ++
backend/src/backend/gen_encoder.hpp | 3 +
.../src/backend/gen_insn_gen7_schedule_info.hxx | 1 +
backend/src/backend/gen_insn_selection.cpp | 133 +++++++++++++++++++-
backend/src/backend/gen_insn_selection.hxx | 1 +
14 files changed, 212 insertions(+), 7 deletions(-)

Upstream: cgit.freedesktop.org


  • Share