Skip to the content.

T

← 전체 목차로 돌아가기


TBL

✅ Table vector Lookup. Uses each byte of an index vector to look up a corresponding byte in a table made of 1-4 vector registers; any index outside the table’s range produces 0. A general-purpose shuffle/permute/lookup-table primitive.

✅ 테이블 벡터 조회. 인덱스 벡터의 각 바이트 값을 이용해, 1~4개의 벡터 레지스터로 구성된 테이블에서 해당 바이트를 찾아옵니다. 테이블 범위를 벗어난 인덱스는 0이 됩니다. 셔플/치환/룩업테이블 용도로 두루 쓰이는 범용 명령어입니다.

Syntax

TBL <Vd>.<Ta>, { <Vn>.16B }, <Vm>.<Ta>

Example

TBL V0.16B, { V1.16B }, V2.16B   // V2를 인덱스 삼아 V1에서 바이트 조회

🔗

TBNZ

✅ Test bit and Branch if Not Zero. Tests a single specified bit of a register and branches to a label if that bit is 1.

✅ 특정 비트가 1이면 분기합니다. 레지스터의 지정한 한 비트를 검사하여 그 비트가 1이면 라벨로 분기합니다.

Syntax

TBNZ <Wt|Xt>, #<bit_num>, <label>

Example

TBNZ W0, #0, is_odd

🔗

TBX

✅ Table vector lookup with eXtension. Same as TBL, but any index outside the table’s range leaves the corresponding destination lane unchanged instead of zeroing it - useful when you want a lookup with a fallback/default value already in place.

✅ 확장 테이블 벡터 조회. TBL과 동작은 같지만, 범위를 벗어난 인덱스의 경우 해당 레인을 0으로 만드는 대신 대상 벡터에 원래 있던 값을 그대로 남겨둡니다. 기본값이 이미 채워진 상태에서 조회하고 싶을 때 유용합니다.

Syntax

TBX <Vd>.<Ta>, { <Vn>.16B }, <Vm>.<Ta>

Example

TBX V0.16B, { V1.16B }, V2.16B

🔗

TBZ

✅ Test bit and Branch if Zero. Tests a single specified bit of a register and branches to a label if that bit is 0.

✅ 특정 비트가 0이면 분기합니다. 레지스터의 지정한 한 비트를 검사하여 그 비트가 0이면 라벨로 분기합니다.

Syntax

TBZ <Wt|Xt>, #<bit_num>, <label>

Example

TBZ W0, #0, is_even

🔗

TLBI

✅ TLB Invalidate operation. Invalidates cached page-table (address-translation) entries in the TLB, so the MMU re-walks the page tables instead of using a stale mapping. Required after modifying page-table entries (unmapping a page, changing permissions) - without it, the CPU may keep using the old translation.

✅ TLB 무효화 명령. TLB에 캐시된 페이지 테이블(주소 변환) 항목을 무효화하여, MMU가 오래된 매핑을 계속 쓰는 대신 페이지 테이블을 다시 훑도록 합니다. 페이지 테이블 항목을 수정(페이지 언매핑, 권한 변경)한 뒤에는 반드시 필요합니다 - 안 그러면 CPU가 예전 변환 결과를 계속 쓸 수 있습니다.

Syntax

TLBI <op>{, <Xt>}   // op: VMALLE1, VAE1, ASIDE1, ALLE2 ...

Example

TLBI VMALLE1      // 현재 EL1 주소공간의 TLB 항목 전체 무효화
DSB ISH
ISB

🔗

TRN1

✅ Transpose vectors (even positions). Takes alternating elements from two vectors and places them at even destination positions - useful for transposing small matrices stored in vector registers.

✅ 벡터 전치(짝수 위치). 두 벡터에서 원소를 번갈아 가져와 짝수 위치에 배치합니다. 벡터 레지스터에 담긴 작은 행렬을 전치(transpose)할 때 유용합니다.

Syntax

TRN1 <Vd>.<T>, <Vn>.<T>, <Vm>.<T>

Example

TRN1 V0.4S, V1.4S, V2.4S

🔗

TRN2

✅ Transpose vectors (odd positions). Same as TRN1 but places the alternating elements at odd destination positions instead.

✅ 벡터 전치(홀수 위치). TRN1과 동작은 같지만, 원소들을 홀수 위치에 배치합니다.

Syntax

TRN2 <Vd>.<T>, <Vn>.<T>, <Vm>.<T>

Example

TRN2 V0.4S, V1.4S, V2.4S

🔗

TST

✅ Test bits. Performs a bitwise AND between two operands and updates the condition flags without storing the result

✅ alias for A


NDS with a discarded destination. (비트를 검사합니다. 두 피연산자를 비트 단위로 AND 연산하여 조건 플래그만 갱신하고 결과값은 저장하지 않습니다(결과를 버리는 ANDS의 별칭).

Syntax

TST <Wn|Xn>, <Wm|Xm>  or  TST <Wn|Xn>, #<imm>

Example

TST X0, #1
B.NE is_odd

🔗