The assembler supports several modifiers when using symbol addresses in TILE-Gx instruction operands. The general syntax is the following:
modifier(symbol)
The following modifiers are supported:
hw0
hw1
hw2
hw3
hw0_last
hw0
, but it also checks
that the value does not overflow.
hw1_last
hw1
, but it also checks
that the value does not overflow.
hw2_last
hw2
, but it also checks
that the value does not overflow.
A 48-bit symbolic value is constructed by using the following idiom:
moveli r0, hw2_last(sym) shl16insli r0, r0, hw1(sym) shl16insli r0, r0, hw0(sym)
hw0_got
hw0_last_got
hw0_got
, but it also
checks that the value does not overflow.
hw1_last_got
plt
hw0_plt
hw1_plt
hw1_last_plt
hw1_plt
, but it also
checks that the value does not overflow.
hw2_last_plt
hw0_tls_gd
hw0_last_tls_gd
hw0_tls_gd
, but it also
checks that the value does not overflow.
hw1_last_tls_gd
hw0_tls_ie
hw0_last_tls_ie
hw0_tls_ie
, but it also
checks that the value does not overflow.
hw1_last_tls_ie
hw0_tls_le
hw0_last_tls_le
hw0_tls_le
, but it also
checks that the value does not overflow.
hw1_last_tls_le
tls_gd_call
tls_gd_add
tls_ie_load