Retro68/gcc/newlib/libc/machine/mn10300/strchr.S
2012-03-27 01:51:53 +02:00

122 lines
2.0 KiB
ArmAsm

.file "strchr.S"
.section .text
.global _strchr
.type _strchr,@function
_strchr:
movm [d2,d3,a2,a3],(sp)
add -12,sp
.Lend_of_prologue:
mov d0,a1
movbu d1,(7,sp)
#ifndef __OPTIMIZE_SIZE__
btst 3,d0
bne .L20
clr d0
setlb
mov sp,a2
mov d0,d3
add d3,a2
mov a2,a0
add 12,a0
movbu (7,sp),d3
movbu d3,(-4,a0)
inc d0
cmp 3,d0
lls
mov a1,a0
mov -16843009,a1
mov (a0),d2
mov a1,d1
add d2,d1
mov d2,d0
not d0
and d0,d1
mov -2139062144,d3
mov d3,(0,sp)
btst -2139062144,d1
bne .L27
jmp .L38
.L28:
inc4 a0
mov (a0),d2
mov a1,d1
add d2,d1
mov d2,d0
not d0
and d0,d1
mov (0,sp),d3
and d3,d1
bne .L27
.L38:
mov (8,sp),d0
xor d2,d0
mov a1,d1
add d0,d1
not d0
and d0,d1
and d3,d1
beq .L28
.L27:
mov a0,a1
.L20:
#endif
movbu (a1),d0
cmp 0,d0
beq .L32
movbu (7,sp),d1
setlb
cmp d1,d0
beq .L36
inc a1
movbu (a1),d0
cmp 0,d0
lne
.L32:
movbu (7,sp),d0
movbu (a1),d3
cmp d0,d3
beq .L36
mov 0,a0
jmp .Lepilogue
.L36:
mov a1,a0
.Lepilogue:
ret [d2,d3,a2,a3],28
.Lend_of_strchr:
.size _strchr, .Lend_of_strchr - _strchr
.section .debug_frame,"",@progbits
.Lstart_of_debug_frame:
# Common Information Entry (CIE)
.4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length
.Lstart_of_CIE:
.4byte 0xffffffff # CIE Identifier Tag
.byte 0x1 # CIE Version
.ascii "\0" # CIE Augmentation
.uleb128 0x1 # CIE Code Alignment Factor
.sleb128 -4 # CIE Data Alignment Factor
.byte 0x32 # CIE RA Column
.byte 0xc # DW_CFA_def_cfa
.uleb128 0x9
.uleb128 0x0
.byte 0xb2 # DW_CFA_offset, column 0x32
.uleb128 0x0
.align 2
.Lend_of_CIE:
# Frame Description Entry (FDE)
.4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length
.Lstart_of_FDE:
.4byte .Lstart_of_debug_frame # FDE CIE offset
.4byte _strchr # FDE initial location
.4byte .Lend_of_strchr - _strchr # FDE address range
.byte 0x4 # DW_CFA_advance_loc4
.4byte .Lend_of_prologue - _strchr
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0x4
.byte 0x87 # DW_CFA_offset, column 0x7
.uleb128 0x1
.align 2
.Lend_of_FDE: