/picolibc-latest/newlib/libc/machine/i960/ |
D | setjmp.S | 47 st g1, 0x58(g0) /* save fp of caller*/ 49 stq g8, 0x40(g0) /* save g8-g11*/ 50 st g12, 0x50(g0) /* save g12*/ 51 st g14, 0x54(g0) /* save g14*/ 54 stq g4, (g0) /* save pfp, sp, rip, r3 */ 56 stq g4, 0x10(g0) /* save r4-r7 */ 58 stq g4, 0x20(g0) /* save r8-r11 */ 60 stq g4, 0x30(g0) /* save r12-r15 */ 62 mov 0, g0 /* return 0 */ 75 ld 0x58(g0), pfp /* get fp of caller of setjmp */ [all …]
|
D | memcmp.S | 95 addo g0,g2,g2 # calculate byte addr of byte after last in src1 98 cmpo g0,g2 99 ld (g0), g5 # fetch word of source_1 102 addo 4,g0,g0 # post-increment source_1 byte ptr 107 subo 4,g0,g0 # back up src1 pointer 113 addo 1,g0,g0 114 cmpobl g0,g2,.Lcloop # quit if max_bytes is exhausted 117 mov 0,g0 124 mov 1,g0 126 .neg: subi 1,0,g0
|
D | strncmp.S | 94 addo g2,g0,g2 96 cmpo g0,g2 # are max_bytes exhausted? 97 ld (g0), g5 # fetch word of source_1 100 addo 4,g0,g0 # post-increment source_1 ptr 106 .Lcloop.a: subo 4,g0,g0 # adjust max_byte counter 115 addo 1,g0,g0 # is max_bytes exhausted? 116 cmpobl g0,g2,.Lcloop # if not, loop. if so, Lexit (equality) 119 mov 0,g0 124 mov 1,g0 127 .neg: subi 1,0,g0
|
D | memchr_ca.S | 98 addo g0,g2,g2 # compute ending address from start and len 99 and g0,3,g6 # extract byte offset of src 100 notand g0,3,g0 # extract word addr of start of src 102 ld (g0),g4 # fetch word containing at least first byte 119 lda 4(g0),g0 # pre-increment src word pointer 121 ld (g0),g4 # fetch next word of src 123 cmpoble.t g0,g2,Lsearch_for_word_with_char # branch if not null 126 mov 0,g0 # char not found. Return null 128 bx (g13) # g0 = addr of char in src (or null); g14 = 0 133 subo 4,g0,g0 # back up the byte pointer [all …]
|
D | strchr.S | 87 ld (g0),g4 # fetch first word 95 addo 4,g0,g0 # post-increment src pointer 101 ld (g0),g4 # fetch next word of src 104 addo 4,g0,g0 # post-increment src pointer 108 mov 0,g0 # char not found. Return null 110 bx (g13) # g0 = addr of char in src (or null); g14 = 0 115 subo 5,g0,g0 # back up the byte pointer 119 addo 1,g0,g0 # bump src byte ptr
|
D | memccpy_ca.S | 99 notand g0,3,g4 # extract word addr of start of dest 105 cmpobe.t g0,g4,Lcase_1_setup # branch if dest word aligned 125 stob MSW,(g0) # store the byte in dest 127 lda 1(g0),g0 # post-increment dest ptr 132 cmpobne.t g1,g0,Lcase_3_cloop_at_start # branch if reached word boundary 155 st g1,(g0) # store 4 bytes to dest 156 addo 4,g0,g0 # post-increment dest ptr 170 st g1,(g0) # store 4 bytes to dest 171 addo 4,g0,g0 # post-increment dest ptr 175 subo 4,g0,g0 # store is pre-incrementing; back up dest addr [all …]
|
D | strchr_ca.S | 100 notand g0,3,g5 # extract word addr of start of src 102 and g0,3,g6 # extract byte offset of src 105 lda 4(g5),g0 # post-increment src word pointer 118 ld (g0),g4 # fetch next word of src 121 lda 4(g0),g0 # post-increment src word pointer 125 mov 0,g0 # char not found. Return null 127 bx (g13) # g0 = addr of char in src (or null); g14 = 0 132 subo 5,g0,g0 # back up the byte pointer 139 lda 1(g0),g0 # bump src byte ptr
|
D | strncmp_ca.S | 115 notand g0,3,SRC1 # extract word addr of start of src1 120 cmpo g0,SRC1 # check alignment of src1 129 shlo 3,g0,g14 # compute shift count for src1 136 mov LSW,g0 139 cmpo SRC2,g0 # compare src1 and src2 words 146 scanbyte 0,g0 # check for null byte in src1 word 148 mov LSW,g0 # extract word of src1 159 shlo 3,g0,g14 # compute shift count for src1 169 mov LSW,g0 172 cmpo SRC2,g0 # compare src1 and src2 words [all …]
|
D | memccpy.S | 111 st g4, (g0) # store word to dest 112 addo 4, g0, g0 # post-increment dest pointer 128 stob g7,(g0) # store the byte 129 addo 1, g0, g0 137 mov 0, g0 140 bx (g13) # g0 = dest array address; g14 = 0
|
D | strcmp.S | 89 ld (g0), g5 # fetch first word of source_1 94 addo 4,g0,g0 # post-increment source_1 byte ptr 101 ld (g0), g5 # fetch ahead next word of source_1 111 mov 0,g0 # return equality 116 mov 1,g0 118 .neg: subi 1,0,g0
|
D | memcmp_ca.S | 115 subo 1,g0,SRC1 118 notand g0,3,SRC1 # extract word addr of start of src1 126 shlo 3,g0,g14 # compute shift count for src1 135 mov LSW,g0 # at least src2 is word aligned 140 cmpo SRC2,g0 # compare src1 and src2 words 148 eshro g14,g4,g0 # extract word of src1 155 mov LSW,g0 # restore extracted src1 word 164 and g0,g1,LSW # extract next char of src1 175 lda 0,g0 # return zero, indicating equality 186 mov 1,g0 [all …]
|
D | memchr.S | 100 addo 4,g0,g6 # post-increment src word pointer 102 ld (g0),g4 # fetch first word 117 mov 0,g0 # char not found. Return null 118 bx (g13) # g0 = addr of char in src (or null); g14 = 0 124 and g5,g7,g0 # extract byte 125 cmpo g1,g0 # is it char? 129 subo 5,g6,g0 # back up the byte pointer
|
D | strcmp_ca.S | 116 notand g0,3,g2 # extract word addr of start of src1 119 cmpo g0,g2 # check alignment of src1 145 lda 0,g0 # prepare to return zero, indicating equality 158 shlo 3,g0,g14 # compute shift count for src1 183 lda 0,g0 # prepare to return zero, indicating equality 201 and SRC1,g1,g0 # extract next char of src1 202 cmpobne.f g0,g3,.diff # check for equality 203 cmpo 0,g0 # check for null byte 214 bx (g13) # g0 = 0 (src1 == src2) 222 mov 1,g0 [all …]
|
D | strdup.S | 59 mov g0,r3 # Keep a copy of the original string addr 61 addo 1,g0,g0 # Add one byte for the null byte at end 63 cmpo 0,g0
|
D | strrchr.S | 93 ld (g0),g4 # fetch first word 101 addo 4,g0,g2 # post-increment src pointer 102 mov 1,g0 # prepare to return null pointer 114 subo 4,g2,g0 # save addr of byte after word with char 125 mov g2,g0 # save addr of byte after char 132 subo 1,g0,g0 # move pointer to that byte (or nullify) 135 bx (g13) # g0 = addr of char in src (or null); g14 = 0
|
D | strlen.S | 88 ldl (g0),g4 # fetch first two words 89 addo 8,g0,g2 # post-increment src word pointer 114 subo g0,g2,g0 # calculate string length 115 bx (g13) # g0 = addr of src; g14 = 0
|
D | memcpy.S | 111 cmpo g0,g1 # does start of dest overlap end of src? 114 concmpo g3,g0 115 addo g2, g0, g6 119 mov g0, g5 141 bx (g13) # g0 = dest array address; g14 = 0 153 cmpobe g6, g0, Lexit # quit if no more bytes to move 159 cmpobne g6, g0, Lcloop.a # quit if no more bytes to move
|
D | strpbrk.S | 81 ldob (g0),g7 # fetch next character of string 92 addo 1,g0,g0 # check next character of string 96 mov 0,g0 # return null if brkset char not found in string
|
D | strcspn.S | 71 lda (g0),g3 # copy string pointer 91 subo g0,g3,g0 # compute string length
|
D | strlen_ca.S | 92 notand g0,3,g2 # extract word addr of start of src 94 and g0,3,g7 # extract byte offset of src 143 subo g0,g2,g0 # calculate string length 144 bx (g13) # g0 = addr of src; g14 = 0
|
D | strcpy.S | 122 ldl (g0),g4 # fetch first two words 123 addo 8,g0,g2 # post-increment src word pointer 154 mov g0, g5 177 bx (g6) # g0 = dest string address; g14 = 0
|
D | memset.S | 76 notand g0,7,g3 # test for non-aligned dest_ptr 79 lda (g0),g6 # preserve dest_ptr for return 82 cmpo g3,g0 # is dest longword aligned
|
D | memcpy_ca.S | 118 cmpo g0,g1 # if dest starts earlier than src ... 122 concmpo g5,g0 # ... or if dest starts after end of src ... 127 notand g0,3,g4 # extract word addr of start of dest 132 cmpo g0,g4 # check alignment of dest 138 lda (g0),g1 # copy dest byte ptr 201 bx (g13) # g0 = addr of dest; g14 = 0 207 cmpo g0,g4 # check alignment of dest 216 cmpo g0,g1 # < indicates first word of dest has more bytes 219 lda (g0),g1 236 addo g2,g0,g1 # compute addr of byte after end of dest [all …]
|
D | strncat.S | 98 mov g0, g5 136 bx (g6) # g0 = dest string address; g14 = 0 152 bx (g6) # g0 = dest string address; g14 = 0
|
D | strncpy_ca.S | 118 notand g0,3,g4 # extract word addr of start of dest 123 cmpo g0,g4 # check alignment of dest 162 bx (g13) # g0 = addr of dest; g14 = 0 197 lda (g0),g1 # copy dest byte ptr 265 cmpo g0,g4 # check alignment of dest 277 cmpo g0,g1 # < indicates first word of dest has more bytes 281 lda (g0),g1
|