我想在我的程序集文件中指定一个 512 x 32 位数组,如下所示:
#define FUNCTION_01 test
#define LABEL_01(name) .L ## test ## _ ## name
.section ".data"
my_array:
.word 0x10101010
.word 0x20101010
.word 0x30101010
.word 0x40101010
...
.section ".text"
.align 4
.global FUNCTION_01
.type FUNCTION_01,#function
FUNCTION_01:
add %g0, 12, %l7
ld [%l7 + my_array], %l7
...
ret
restore
LABEL_01(end):
.size FUNCTION_01,LABEL_01(end)-FUNCTION
所以我在 function_01 中尝试做的是访问数组中的第 4 个元素。但是,当我尝试为 SPARC 架构编译上述程序集时,我收到以下错误:
(.text+0x75c): relocation truncated to fit: R_SPARC_13 against `.data'
collect2: ld returned 1 exit status
不知道该怎么做这个错误。这是否意味着数组太大或者我在代码中还有其他错误?