summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-empic/runtesti.s
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-empic/runtesti.s')
-rw-r--r--ld/testsuite/ld-empic/runtesti.s94
1 files changed, 0 insertions, 94 deletions
diff --git a/ld/testsuite/ld-empic/runtesti.s b/ld/testsuite/ld-empic/runtesti.s
deleted file mode 100644
index efa195301fb..00000000000
--- a/ld/testsuite/ld-empic/runtesti.s
+++ /dev/null
@@ -1,94 +0,0 @@
-# Assembler initialization code for actual execution test.
-
-# This code becomes the start of the execution test program. It is
-# responsible for initializing the static data, invoking the C code,
-# and returning the result. It is called as though it were a C
-# function with an argument of the address of the data segment.
-
-# We need to know the value of _ftext and _fdata at link time, but we
-# have no way to actually get that at runtime. This is because when
-# this code is compiled with -membedded-pic, the la instruction will
-# be turned into an addiu $gp instruction. We work around this by
-# storing the information in words in the .data section. We then load
-# the values of these words *before* doing the runtime relocation.
- .sdata
-text_start:
- .word _ftext
-data_start:
- .word _fdata
-
- .globl start
- .text
-start:
- # Grab some space on the stack, just as though we were a real
- # function.
- addiu $sp,$sp,-8
- sw $31,0($sp)
-
- # Save the $gp register, and set it up for our data section.
- sw $gp,4($sp)
-
- addu $gp,$4,0x8000 # macro
-
- # The start of the data segment is in $4.
-
- # Get the address of start into $5 in a position independent
- # fashion.
- .set noreorder
- $LF1 = . + 8
- bal $LF1
- la $5,start-$LF1 # macro
- .set reorder
- addu $5,$5,$31
-
- # Now get the address of _ftext into $6.
- la $6,_ftext-start # macro
- addu $6,$6,$5
-
- # Get the value of _ftext used to link into $7.
- lw $7,text_start # macro
-
- # Get the value of _fdata used to link into $8.
- lw $8,data_start # macro
-
- # Get the address of __runtime_reloc_start into $9.
- la $9,__runtime_reloc_start-start # macro
- addu $9,$9,$5
-
- # Get the address of __runtime_reloc_stop into $10.
- la $10,__runtime_reloc_stop-start # macro
- addu $10,$10,$5
-
- # The words between $9 and $10 are the runtime initialization
- # instructions. Step through and relocate them. First set
- # $11 and $12 to the values to add to text and data sections,
- # respectively.
- subu $11,$6,$7
- subu $12,$4,$8
-
-1:
- bge $9,$10,3f # macro
- lw $13,0($9)
- and $14,$13,0xfffffffe # macro
- move $15,$11
- beq $13,$14,2f
- move $15,$12
-2:
- addu $14,$14,$4
- lw $24,0($14)
- addu $24,$24,$15
- sw $24,0($14)
- addiu $9,$9,4
- b 1b
-3:
-
- # Now the statically initialized data has been relocated
- # correctly, and we can call the C code which does the actual
- # testing.
- bal foo
-
- # We return the value returned by the C code.
- lw $31,0($sp)
- lw $gp,4($sp)
- addu $sp,$sp,8
- j $31