sparc: Solaris fixes, part 2
/bin/as seems to only understand single-digit labels /bin/as knows nothing about .rept/.endr
This commit is contained in:
@@ -177,7 +177,7 @@ E(SPARC_RET_F_2)
|
|||||||
restore
|
restore
|
||||||
E(SP_V8_RET_CPLX8)
|
E(SP_V8_RET_CPLX8)
|
||||||
stb %o0, [%i2+1]
|
stb %o0, [%i2+1]
|
||||||
b 10f
|
b 0f
|
||||||
srl %o0, 8, %o0
|
srl %o0, 8, %o0
|
||||||
E(SPARC_RET_F_1)
|
E(SPARC_RET_F_1)
|
||||||
st %f0, [%i2]
|
st %f0, [%i2]
|
||||||
@@ -189,7 +189,7 @@ E(SPARC_RET_F_1)
|
|||||||
ret
|
ret
|
||||||
restore
|
restore
|
||||||
.align 8
|
.align 8
|
||||||
10: stb %o0, [%i2]
|
0: stb %o0, [%i2]
|
||||||
ret
|
ret
|
||||||
restore
|
restore
|
||||||
|
|
||||||
@@ -202,17 +202,35 @@ E(SPARC_RET_F_1)
|
|||||||
sll %l1, 2, %l0 ! size * 4
|
sll %l1, 2, %l0 ! size * 4
|
||||||
1: sll %l1, 4, %l1 ! size * 16
|
1: sll %l1, 4, %l1 ! size * 16
|
||||||
add %l0, %l1, %l0 ! size * 20
|
add %l0, %l1, %l0 ! size * 20
|
||||||
add %o7, %l0, %o7 ! o7 = 0b + size*20
|
add %o7, %l0, %o7 ! o7 = 8b + size*20
|
||||||
jmp %o7+(2f-8b)
|
jmp %o7+(2f-8b)
|
||||||
mov %i5, %g2 ! load static chain
|
mov %i5, %g2 ! load static chain
|
||||||
2:
|
2:
|
||||||
.rept 0x1000
|
|
||||||
call %i1
|
/* The Sun assembler doesn't understand .rept 0x1000. */
|
||||||
nop
|
#define rept1 \
|
||||||
unimp (. - 2b) / 20
|
call %i1; \
|
||||||
ret
|
nop; \
|
||||||
|
unimp (. - 2b) / 20; \
|
||||||
|
ret; \
|
||||||
restore
|
restore
|
||||||
.endr
|
|
||||||
|
#define rept16 \
|
||||||
|
rept1; rept1; rept1; rept1; \
|
||||||
|
rept1; rept1; rept1; rept1; \
|
||||||
|
rept1; rept1; rept1; rept1; \
|
||||||
|
rept1; rept1; rept1; rept1
|
||||||
|
|
||||||
|
#define rept256 \
|
||||||
|
rept16; rept16; rept16; rept16; \
|
||||||
|
rept16; rept16; rept16; rept16; \
|
||||||
|
rept16; rept16; rept16; rept16; \
|
||||||
|
rept16; rept16; rept16; rept16
|
||||||
|
|
||||||
|
rept256; rept256; rept256; rept256
|
||||||
|
rept256; rept256; rept256; rept256
|
||||||
|
rept256; rept256; rept256; rept256
|
||||||
|
rept256; rept256; rept256; rept256
|
||||||
|
|
||||||
cfi_endproc
|
cfi_endproc
|
||||||
.size C(ffi_call_v8),. - C(ffi_call_v8)
|
.size C(ffi_call_v8),. - C(ffi_call_v8)
|
||||||
|
|||||||
Reference in New Issue
Block a user