You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.2 KiB
57 lines
1.2 KiB
|
|
addi sp, sp, -12
|
|
sw ra, 8(sp)
|
|
sw fp, 4(sp)
|
|
addi fp, sp, 12
|
|
lw t0, 4(fp)
|
|
lw t1, 0(fp)
|
|
lw t0, @.__len__(t0)
|
|
beqz t0, strcat_4
|
|
lw t1, @.__len__(t1)
|
|
beqz t1, strcat_5
|
|
add t1, t0, t1
|
|
sw t1, -12(fp)
|
|
addi t1, t1, 4
|
|
srli t1, t1, 2
|
|
addi a1, t1, @listHeaderWords
|
|
la a0, $str$prototype
|
|
jal alloc2
|
|
lw t0, -12(fp)
|
|
sw t0, @.__len__(a0)
|
|
addi t2, a0, 16
|
|
lw t0, 4(fp)
|
|
lw t1, @.__len__(t0)
|
|
addi t0, t0, @.__str__
|
|
strcat_1:
|
|
beqz t1, strcat_2
|
|
lbu t3, 0(t0)
|
|
sb t3, 0(t2)
|
|
addi t1, t1, -1
|
|
addi t0, t0, 1
|
|
addi t2, t2, 1
|
|
j strcat_1
|
|
strcat_2:
|
|
lw t0, 0(fp)
|
|
lw t1, 12(t0)
|
|
addi t0, t0, 16
|
|
strcat_3:
|
|
beqz t1, strcat_6
|
|
lbu t3, 0(t0)
|
|
sb t3, 0(t2)
|
|
addi t1, t1, -1
|
|
addi t0, t0, 1
|
|
addi t2, t2, 1
|
|
j strcat_3
|
|
strcat_4:
|
|
lw a0, 0(fp)
|
|
j strcat_7
|
|
strcat_5:
|
|
lw a0, 4(fp)
|
|
j strcat_7
|
|
strcat_6:
|
|
sb zero, 0(t2)
|
|
strcat_7:
|
|
lw ra, -4(fp)
|
|
lw fp, -8(fp)
|
|
addi sp, sp, 12
|
|
jr ra |