ARM GAS  /tmp/ccH4oDXT.s 			page 1


   1              		.cpu cortex-m0
   2              		.eabi_attribute 20, 1
   3              		.eabi_attribute 21, 1
   4              		.eabi_attribute 23, 3
   5              		.eabi_attribute 24, 1
   6              		.eabi_attribute 25, 1
   7              		.eabi_attribute 26, 1
   8              		.eabi_attribute 30, 1
   9              		.eabi_attribute 34, 0
  10              		.eabi_attribute 18, 4
  11              		.file	"curebuffer.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.section	.text.cureRingBufferU8Free,"ax",%progbits
  16              		.align	1
  17              		.global	cureRingBufferU8Free
  18              		.syntax unified
  19              		.code	16
  20              		.thumb_func
  21              		.fpu softvfp
  23              	cureRingBufferU8Free:
  24              	.LFB1:
  25              		.file 1 "Src/curelib_src/curebuffer.c"
   1:Src/curelib_src/curebuffer.c **** /*
   2:Src/curelib_src/curebuffer.c ****  *******************************************************************************
   3:Src/curelib_src/curebuffer.c ****  *  [curebuffer.c]
   4:Src/curelib_src/curebuffer.c ****  *  This module is for FIFO buffer.
   5:Src/curelib_src/curebuffer.c ****  *
   6:Src/curelib_src/curebuffer.c ****  *  This program is under the terms of the GPLv3.
   7:Src/curelib_src/curebuffer.c ****  *  https://www.gnu.org/licenses/gpl-3.0.html
   8:Src/curelib_src/curebuffer.c ****  *
   9:Src/curelib_src/curebuffer.c ****  *  Copyright(c) 2017 Keshikan (www.keshikan.net)
  10:Src/curelib_src/curebuffer.c ****  *******************************************************************************
  11:Src/curelib_src/curebuffer.c ****  */
  12:Src/curelib_src/curebuffer.c **** 
  13:Src/curelib_src/curebuffer.c **** #include "curebuffer.h"
  14:Src/curelib_src/curebuffer.c **** #include <stdint.h>
  15:Src/curelib_src/curebuffer.c **** #include <stdlib.h>
  16:Src/curelib_src/curebuffer.c **** 
  17:Src/curelib_src/curebuffer.c **** 
  18:Src/curelib_src/curebuffer.c **** /////////////////////////////
  19:Src/curelib_src/curebuffer.c **** //methods for uint8_t FIFO.
  20:Src/curelib_src/curebuffer.c **** /////////////////////////////
  21:Src/curelib_src/curebuffer.c **** 
  22:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU8Init(RingBufferU8 *rbuf, uint16_t buflen)
  23:Src/curelib_src/curebuffer.c **** {
  24:Src/curelib_src/curebuffer.c **** 
  25:Src/curelib_src/curebuffer.c **** 	uint32_t i;
  26:Src/curelib_src/curebuffer.c **** 
  27:Src/curelib_src/curebuffer.c **** 	cureRingBufferU8Free(rbuf);
  28:Src/curelib_src/curebuffer.c **** 
  29:Src/curelib_src/curebuffer.c **** 		rbuf->buffer = (uint8_t *)malloc( buflen * sizeof(uint8_t) );
  30:Src/curelib_src/curebuffer.c **** 		if(NULL == rbuf->buffer){
  31:Src/curelib_src/curebuffer.c **** 			return BUFFER_FAILURE;
  32:Src/curelib_src/curebuffer.c **** 		}
  33:Src/curelib_src/curebuffer.c **** 		for(i=0; i<buflen; i++){
ARM GAS  /tmp/ccH4oDXT.s 			page 2


  34:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
  35:Src/curelib_src/curebuffer.c **** 		}
  36:Src/curelib_src/curebuffer.c **** 
  37:Src/curelib_src/curebuffer.c **** 	rbuf->length = buflen;
  38:Src/curelib_src/curebuffer.c **** 
  39:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
  40:Src/curelib_src/curebuffer.c **** }
  41:Src/curelib_src/curebuffer.c **** 
  42:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU8Free(RingBufferU8 *rbuf)
  43:Src/curelib_src/curebuffer.c **** {
  26              		.loc 1 43 0
  27              		.cfi_startproc
  28              		@ args = 0, pretend = 0, frame = 0
  29              		@ frame_needed = 0, uses_anonymous_args = 0
  30              	.LVL0:
  31 0000 10B5     		push	{r4, lr}
  32              	.LCFI0:
  33              		.cfi_def_cfa_offset 8
  34              		.cfi_offset 4, -8
  35              		.cfi_offset 14, -4
  36 0002 0400     		movs	r4, r0
  44:Src/curelib_src/curebuffer.c **** 	if(NULL != rbuf->buffer){
  37              		.loc 1 44 0
  38 0004 8068     		ldr	r0, [r0, #8]
  39              	.LVL1:
  40 0006 0028     		cmp	r0, #0
  41 0008 01D0     		beq	.L2
  45:Src/curelib_src/curebuffer.c **** 		free(rbuf->buffer);
  42              		.loc 1 45 0
  43 000a FFF7FEFF 		bl	free
  44              	.LVL2:
  45              	.L2:
  46:Src/curelib_src/curebuffer.c **** 	}
  47:Src/curelib_src/curebuffer.c **** 
  48:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front = rbuf->idx_rear = 0;
  46              		.loc 1 48 0
  47 000e 0023     		movs	r3, #0
  48 0010 6380     		strh	r3, [r4, #2]
  49 0012 2380     		strh	r3, [r4]
  49:Src/curelib_src/curebuffer.c **** 	rbuf->length = 0;
  50              		.loc 1 49 0
  51 0014 A380     		strh	r3, [r4, #4]
  50:Src/curelib_src/curebuffer.c **** 
  51:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
  52:Src/curelib_src/curebuffer.c **** }
  52              		.loc 1 52 0
  53 0016 0120     		movs	r0, #1
  54              		@ sp needed
  55              	.LVL3:
  56 0018 10BD     		pop	{r4, pc}
  57              		.cfi_endproc
  58              	.LFE1:
  60              		.section	.text.cureRingBufferU8Init,"ax",%progbits
  61              		.align	1
  62              		.global	cureRingBufferU8Init
  63              		.syntax unified
  64              		.code	16
ARM GAS  /tmp/ccH4oDXT.s 			page 3


  65              		.thumb_func
  66              		.fpu softvfp
  68              	cureRingBufferU8Init:
  69              	.LFB0:
  23:Src/curelib_src/curebuffer.c **** 
  70              		.loc 1 23 0
  71              		.cfi_startproc
  72              		@ args = 0, pretend = 0, frame = 0
  73              		@ frame_needed = 0, uses_anonymous_args = 0
  74              	.LVL4:
  75 0000 70B5     		push	{r4, r5, r6, lr}
  76              	.LCFI1:
  77              		.cfi_def_cfa_offset 16
  78              		.cfi_offset 4, -16
  79              		.cfi_offset 5, -12
  80              		.cfi_offset 6, -8
  81              		.cfi_offset 14, -4
  82 0002 0500     		movs	r5, r0
  83 0004 0C00     		movs	r4, r1
  27:Src/curelib_src/curebuffer.c **** 
  84              		.loc 1 27 0
  85 0006 FFF7FEFF 		bl	cureRingBufferU8Free
  86              	.LVL5:
  29:Src/curelib_src/curebuffer.c **** 		if(NULL == rbuf->buffer){
  87              		.loc 1 29 0
  88 000a 2600     		movs	r6, r4
  89 000c 2000     		movs	r0, r4
  90 000e FFF7FEFF 		bl	malloc
  91              	.LVL6:
  92 0012 A860     		str	r0, [r5, #8]
  30:Src/curelib_src/curebuffer.c **** 			return BUFFER_FAILURE;
  93              		.loc 1 30 0
  94 0014 0028     		cmp	r0, #0
  95 0016 0BD0     		beq	.L7
  33:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
  96              		.loc 1 33 0
  97 0018 0023     		movs	r3, #0
  98 001a 04E0     		b	.L5
  99              	.LVL7:
 100              	.L6:
  34:Src/curelib_src/curebuffer.c **** 		}
 101              		.loc 1 34 0 discriminator 3
 102 001c AA68     		ldr	r2, [r5, #8]
 103 001e D218     		adds	r2, r2, r3
 104 0020 0021     		movs	r1, #0
 105 0022 1170     		strb	r1, [r2]
  33:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 106              		.loc 1 33 0 discriminator 3
 107 0024 0133     		adds	r3, r3, #1
 108              	.LVL8:
 109              	.L5:
  33:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 110              		.loc 1 33 0 is_stmt 0 discriminator 1
 111 0026 9E42     		cmp	r6, r3
 112 0028 F8D8     		bhi	.L6
  37:Src/curelib_src/curebuffer.c **** 
 113              		.loc 1 37 0 is_stmt 1
ARM GAS  /tmp/ccH4oDXT.s 			page 4


 114 002a AC80     		strh	r4, [r5, #4]
  39:Src/curelib_src/curebuffer.c **** }
 115              		.loc 1 39 0
 116 002c 0120     		movs	r0, #1
 117              	.LVL9:
 118              	.L4:
  40:Src/curelib_src/curebuffer.c **** 
 119              		.loc 1 40 0
 120              		@ sp needed
 121              	.LVL10:
 122 002e 70BD     		pop	{r4, r5, r6, pc}
 123              	.LVL11:
 124              	.L7:
  31:Src/curelib_src/curebuffer.c **** 		}
 125              		.loc 1 31 0
 126 0030 0020     		movs	r0, #0
 127 0032 FCE7     		b	.L4
 128              		.cfi_endproc
 129              	.LFE0:
 131              		.section	.text.cureRingBufferU8Enqueue,"ax",%progbits
 132              		.align	1
 133              		.global	cureRingBufferU8Enqueue
 134              		.syntax unified
 135              		.code	16
 136              		.thumb_func
 137              		.fpu softvfp
 139              	cureRingBufferU8Enqueue:
 140              	.LFB2:
  53:Src/curelib_src/curebuffer.c **** 
  54:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU8Enqueue(RingBufferU8 *rbuf, uint8_t *inputc)
  55:Src/curelib_src/curebuffer.c **** {
 141              		.loc 1 55 0
 142              		.cfi_startproc
 143              		@ args = 0, pretend = 0, frame = 0
 144              		@ frame_needed = 0, uses_anonymous_args = 0
 145              	.LVL12:
 146 0000 10B5     		push	{r4, lr}
 147              	.LCFI2:
 148              		.cfi_def_cfa_offset 8
 149              		.cfi_offset 4, -8
 150              		.cfi_offset 14, -4
  56:Src/curelib_src/curebuffer.c **** 	if( ((rbuf->idx_front +1)&(rbuf->length -1)) == rbuf->idx_rear ){//buffer overrun error occurs.
 151              		.loc 1 56 0
 152 0002 0288     		ldrh	r2, [r0]
 153 0004 541C     		adds	r4, r2, #1
 154 0006 8388     		ldrh	r3, [r0, #4]
 155 0008 013B     		subs	r3, r3, #1
 156 000a 2340     		ands	r3, r4
 157 000c 4488     		ldrh	r4, [r0, #2]
 158 000e A342     		cmp	r3, r4
 159 0010 0CD0     		beq	.L10
  57:Src/curelib_src/curebuffer.c **** 		return BUFFER_FAILURE;
  58:Src/curelib_src/curebuffer.c **** 	}else{
  59:Src/curelib_src/curebuffer.c **** 
  60:Src/curelib_src/curebuffer.c **** 		rbuf->buffer[rbuf->idx_front]=  *inputc;
 160              		.loc 1 60 0
 161 0012 0B78     		ldrb	r3, [r1]
ARM GAS  /tmp/ccH4oDXT.s 			page 5


 162 0014 8168     		ldr	r1, [r0, #8]
 163              	.LVL13:
 164 0016 8B54     		strb	r3, [r1, r2]
  61:Src/curelib_src/curebuffer.c **** 		rbuf->idx_front++;
 165              		.loc 1 61 0
 166 0018 0388     		ldrh	r3, [r0]
 167 001a 0133     		adds	r3, r3, #1
 168 001c 9BB2     		uxth	r3, r3
  62:Src/curelib_src/curebuffer.c **** 		rbuf->idx_front &= (rbuf->length -1);
 169              		.loc 1 62 0
 170 001e 8288     		ldrh	r2, [r0, #4]
 171 0020 013A     		subs	r2, r2, #1
 172 0022 12B2     		sxth	r2, r2
 173 0024 1340     		ands	r3, r2
 174 0026 0380     		strh	r3, [r0]
  63:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 175              		.loc 1 63 0
 176 0028 0120     		movs	r0, #1
 177              	.LVL14:
 178              	.L9:
  64:Src/curelib_src/curebuffer.c **** 	}
  65:Src/curelib_src/curebuffer.c **** }
 179              		.loc 1 65 0
 180              		@ sp needed
 181 002a 10BD     		pop	{r4, pc}
 182              	.LVL15:
 183              	.L10:
  57:Src/curelib_src/curebuffer.c **** 	}else{
 184              		.loc 1 57 0
 185 002c 0020     		movs	r0, #0
 186              	.LVL16:
 187 002e FCE7     		b	.L9
 188              		.cfi_endproc
 189              	.LFE2:
 191              		.section	.text.cureRingBufferU8Dequeue,"ax",%progbits
 192              		.align	1
 193              		.global	cureRingBufferU8Dequeue
 194              		.syntax unified
 195              		.code	16
 196              		.thumb_func
 197              		.fpu softvfp
 199              	cureRingBufferU8Dequeue:
 200              	.LFB3:
  66:Src/curelib_src/curebuffer.c **** 
  67:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU8Dequeue(RingBufferU8 *rbuf, uint8_t *ret)
  68:Src/curelib_src/curebuffer.c **** {
 201              		.loc 1 68 0
 202              		.cfi_startproc
 203              		@ args = 0, pretend = 0, frame = 0
 204              		@ frame_needed = 0, uses_anonymous_args = 0
 205              		@ link register save eliminated.
 206              	.LVL17:
  69:Src/curelib_src/curebuffer.c **** 	if(rbuf->idx_front == rbuf->idx_rear){//if buffer underrun error occurs.
 207              		.loc 1 69 0
 208 0000 0288     		ldrh	r2, [r0]
 209 0002 4388     		ldrh	r3, [r0, #2]
 210 0004 9A42     		cmp	r2, r3
ARM GAS  /tmp/ccH4oDXT.s 			page 6


 211 0006 0CD0     		beq	.L13
  70:Src/curelib_src/curebuffer.c **** 		return BUFFER_FAILURE;
  71:Src/curelib_src/curebuffer.c **** 	}else{
  72:Src/curelib_src/curebuffer.c **** 
  73:Src/curelib_src/curebuffer.c **** 		*ret = (rbuf->buffer[rbuf->idx_rear]);
 212              		.loc 1 73 0
 213 0008 8268     		ldr	r2, [r0, #8]
 214 000a D35C     		ldrb	r3, [r2, r3]
 215 000c 0B70     		strb	r3, [r1]
  74:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear++;
 216              		.loc 1 74 0
 217 000e 4388     		ldrh	r3, [r0, #2]
 218 0010 0133     		adds	r3, r3, #1
 219 0012 9BB2     		uxth	r3, r3
  75:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear &= (rbuf->length -1);
 220              		.loc 1 75 0
 221 0014 8288     		ldrh	r2, [r0, #4]
 222 0016 013A     		subs	r2, r2, #1
 223 0018 12B2     		sxth	r2, r2
 224 001a 1340     		ands	r3, r2
 225 001c 4380     		strh	r3, [r0, #2]
  76:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 226              		.loc 1 76 0
 227 001e 0120     		movs	r0, #1
 228              	.LVL18:
 229              	.L12:
  77:Src/curelib_src/curebuffer.c **** 	}
  78:Src/curelib_src/curebuffer.c **** }
 230              		.loc 1 78 0
 231              		@ sp needed
 232 0020 7047     		bx	lr
 233              	.LVL19:
 234              	.L13:
  70:Src/curelib_src/curebuffer.c **** 	}else{
 235              		.loc 1 70 0
 236 0022 0020     		movs	r0, #0
 237              	.LVL20:
 238 0024 FCE7     		b	.L12
 239              		.cfi_endproc
 240              	.LFE3:
 242              		.section	.text._cureRingBufferU8GetUsedSize,"ax",%progbits
 243              		.align	1
 244              		.global	_cureRingBufferU8GetUsedSize
 245              		.syntax unified
 246              		.code	16
 247              		.thumb_func
 248              		.fpu softvfp
 250              	_cureRingBufferU8GetUsedSize:
 251              	.LFB4:
  79:Src/curelib_src/curebuffer.c **** 
  80:Src/curelib_src/curebuffer.c **** //debug
  81:Src/curelib_src/curebuffer.c **** uint16_t _cureRingBufferU8GetUsedSize(RingBufferU8 *rbuf)
  82:Src/curelib_src/curebuffer.c **** {
 252              		.loc 1 82 0
 253              		.cfi_startproc
 254              		@ args = 0, pretend = 0, frame = 0
 255              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  /tmp/ccH4oDXT.s 			page 7


 256              		@ link register save eliminated.
 257              	.LVL21:
  83:Src/curelib_src/curebuffer.c **** 	if(rbuf->idx_front >= rbuf->idx_rear){
 258              		.loc 1 83 0
 259 0000 0388     		ldrh	r3, [r0]
 260 0002 4288     		ldrh	r2, [r0, #2]
 261 0004 9342     		cmp	r3, r2
 262 0006 05D2     		bcs	.L17
  84:Src/curelib_src/curebuffer.c **** 		return rbuf->idx_front - rbuf->idx_rear;
  85:Src/curelib_src/curebuffer.c **** 	}else{
  86:Src/curelib_src/curebuffer.c **** 		return rbuf->idx_front + rbuf->length - rbuf->idx_rear;
 263              		.loc 1 86 0
 264 0008 8088     		ldrh	r0, [r0, #4]
 265              	.LVL22:
 266 000a 1818     		adds	r0, r3, r0
 267 000c 80B2     		uxth	r0, r0
 268 000e 801A     		subs	r0, r0, r2
 269 0010 80B2     		uxth	r0, r0
 270              	.L16:
  87:Src/curelib_src/curebuffer.c **** 	}
  88:Src/curelib_src/curebuffer.c **** 
  89:Src/curelib_src/curebuffer.c **** }
 271              		.loc 1 89 0
 272              		@ sp needed
 273 0012 7047     		bx	lr
 274              	.LVL23:
 275              	.L17:
  84:Src/curelib_src/curebuffer.c **** 		return rbuf->idx_front - rbuf->idx_rear;
 276              		.loc 1 84 0
 277 0014 981A     		subs	r0, r3, r2
 278              	.LVL24:
 279 0016 80B2     		uxth	r0, r0
 280 0018 FBE7     		b	.L16
 281              		.cfi_endproc
 282              	.LFE4:
 284              		.section	.text.cureRingBuffer16Free,"ax",%progbits
 285              		.align	1
 286              		.global	cureRingBuffer16Free
 287              		.syntax unified
 288              		.code	16
 289              		.thumb_func
 290              		.fpu softvfp
 292              	cureRingBuffer16Free:
 293              	.LFB6:
  90:Src/curelib_src/curebuffer.c **** 
  91:Src/curelib_src/curebuffer.c **** /////////////////////////////
  92:Src/curelib_src/curebuffer.c **** //methods for int16_t FIFO.
  93:Src/curelib_src/curebuffer.c **** /////////////////////////////
  94:Src/curelib_src/curebuffer.c **** 
  95:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBuffer16Init(RingBuffer16 *rbuf, uint16_t buflen)
  96:Src/curelib_src/curebuffer.c **** {
  97:Src/curelib_src/curebuffer.c **** 
  98:Src/curelib_src/curebuffer.c **** 	uint32_t i;
  99:Src/curelib_src/curebuffer.c **** 
 100:Src/curelib_src/curebuffer.c **** 	cureRingBuffer16Free(rbuf);
 101:Src/curelib_src/curebuffer.c **** 
 102:Src/curelib_src/curebuffer.c **** 		rbuf->buffer = (int16_t *)malloc( buflen * sizeof(int16_t) );
ARM GAS  /tmp/ccH4oDXT.s 			page 8


 103:Src/curelib_src/curebuffer.c **** 		if(NULL == rbuf->buffer){
 104:Src/curelib_src/curebuffer.c **** 			return BUFFER_FAILURE;
 105:Src/curelib_src/curebuffer.c **** 		}
 106:Src/curelib_src/curebuffer.c **** 		for(i=0; i<buflen; i++){
 107:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 108:Src/curelib_src/curebuffer.c **** 		}
 109:Src/curelib_src/curebuffer.c **** 	rbuf->length = buflen;
 110:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 111:Src/curelib_src/curebuffer.c **** }
 112:Src/curelib_src/curebuffer.c **** 
 113:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBuffer16Free(RingBuffer16 *rbuf)
 114:Src/curelib_src/curebuffer.c **** {
 294              		.loc 1 114 0
 295              		.cfi_startproc
 296              		@ args = 0, pretend = 0, frame = 0
 297              		@ frame_needed = 0, uses_anonymous_args = 0
 298              	.LVL25:
 299 0000 10B5     		push	{r4, lr}
 300              	.LCFI3:
 301              		.cfi_def_cfa_offset 8
 302              		.cfi_offset 4, -8
 303              		.cfi_offset 14, -4
 304 0002 0400     		movs	r4, r0
 115:Src/curelib_src/curebuffer.c **** 	if(NULL != rbuf->buffer){
 305              		.loc 1 115 0
 306 0004 8068     		ldr	r0, [r0, #8]
 307              	.LVL26:
 308 0006 0028     		cmp	r0, #0
 309 0008 01D0     		beq	.L19
 116:Src/curelib_src/curebuffer.c **** 		free(rbuf->buffer);
 310              		.loc 1 116 0
 311 000a FFF7FEFF 		bl	free
 312              	.LVL27:
 313              	.L19:
 117:Src/curelib_src/curebuffer.c **** 	}
 118:Src/curelib_src/curebuffer.c **** 
 119:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front = rbuf->idx_rear = 0;
 314              		.loc 1 119 0
 315 000e 0023     		movs	r3, #0
 316 0010 6380     		strh	r3, [r4, #2]
 317 0012 2380     		strh	r3, [r4]
 120:Src/curelib_src/curebuffer.c **** 	rbuf->length = 0;
 318              		.loc 1 120 0
 319 0014 A380     		strh	r3, [r4, #4]
 121:Src/curelib_src/curebuffer.c **** 
 122:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 123:Src/curelib_src/curebuffer.c **** }
 320              		.loc 1 123 0
 321 0016 0120     		movs	r0, #1
 322              		@ sp needed
 323              	.LVL28:
 324 0018 10BD     		pop	{r4, pc}
 325              		.cfi_endproc
 326              	.LFE6:
 328              		.section	.text.cureRingBuffer16Init,"ax",%progbits
 329              		.align	1
 330              		.global	cureRingBuffer16Init
ARM GAS  /tmp/ccH4oDXT.s 			page 9


 331              		.syntax unified
 332              		.code	16
 333              		.thumb_func
 334              		.fpu softvfp
 336              	cureRingBuffer16Init:
 337              	.LFB5:
  96:Src/curelib_src/curebuffer.c **** 
 338              		.loc 1 96 0
 339              		.cfi_startproc
 340              		@ args = 0, pretend = 0, frame = 0
 341              		@ frame_needed = 0, uses_anonymous_args = 0
 342              	.LVL29:
 343 0000 70B5     		push	{r4, r5, r6, lr}
 344              	.LCFI4:
 345              		.cfi_def_cfa_offset 16
 346              		.cfi_offset 4, -16
 347              		.cfi_offset 5, -12
 348              		.cfi_offset 6, -8
 349              		.cfi_offset 14, -4
 350 0002 0400     		movs	r4, r0
 351 0004 0E00     		movs	r6, r1
 100:Src/curelib_src/curebuffer.c **** 
 352              		.loc 1 100 0
 353 0006 FFF7FEFF 		bl	cureRingBuffer16Free
 354              	.LVL30:
 102:Src/curelib_src/curebuffer.c **** 		if(NULL == rbuf->buffer){
 355              		.loc 1 102 0
 356 000a 3500     		movs	r5, r6
 357 000c 7000     		lsls	r0, r6, #1
 358 000e FFF7FEFF 		bl	malloc
 359              	.LVL31:
 360 0012 A060     		str	r0, [r4, #8]
 103:Src/curelib_src/curebuffer.c **** 			return BUFFER_FAILURE;
 361              		.loc 1 103 0
 362 0014 0028     		cmp	r0, #0
 363 0016 0DD0     		beq	.L24
 106:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 364              		.loc 1 106 0
 365 0018 0023     		movs	r3, #0
 366 001a 06E0     		b	.L22
 367              	.LVL32:
 368              	.L23:
 107:Src/curelib_src/curebuffer.c **** 		}
 369              		.loc 1 107 0 discriminator 3
 370 001c 5A00     		lsls	r2, r3, #1
 371 001e A168     		ldr	r1, [r4, #8]
 372 0020 8C46     		mov	ip, r1
 373 0022 6244     		add	r2, r2, ip
 374 0024 0021     		movs	r1, #0
 375 0026 1180     		strh	r1, [r2]
 106:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 376              		.loc 1 106 0 discriminator 3
 377 0028 0133     		adds	r3, r3, #1
 378              	.LVL33:
 379              	.L22:
 106:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 380              		.loc 1 106 0 is_stmt 0 discriminator 1
ARM GAS  /tmp/ccH4oDXT.s 			page 10


 381 002a 9D42     		cmp	r5, r3
 382 002c F6D8     		bhi	.L23
 109:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 383              		.loc 1 109 0 is_stmt 1
 384 002e A680     		strh	r6, [r4, #4]
 110:Src/curelib_src/curebuffer.c **** }
 385              		.loc 1 110 0
 386 0030 0120     		movs	r0, #1
 387              	.LVL34:
 388              	.L21:
 111:Src/curelib_src/curebuffer.c **** 
 389              		.loc 1 111 0
 390              		@ sp needed
 391              	.LVL35:
 392 0032 70BD     		pop	{r4, r5, r6, pc}
 393              	.LVL36:
 394              	.L24:
 104:Src/curelib_src/curebuffer.c **** 		}
 395              		.loc 1 104 0
 396 0034 0020     		movs	r0, #0
 397 0036 FCE7     		b	.L21
 398              		.cfi_endproc
 399              	.LFE5:
 401              		.section	.text.cureRingBuffer16Enqueue,"ax",%progbits
 402              		.align	1
 403              		.global	cureRingBuffer16Enqueue
 404              		.syntax unified
 405              		.code	16
 406              		.thumb_func
 407              		.fpu softvfp
 409              	cureRingBuffer16Enqueue:
 410              	.LFB7:
 124:Src/curelib_src/curebuffer.c **** 
 125:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBuffer16Enqueue(RingBuffer16 *rbuf, int16_t *inputc)
 126:Src/curelib_src/curebuffer.c **** {
 411              		.loc 1 126 0
 412              		.cfi_startproc
 413              		@ args = 0, pretend = 0, frame = 0
 414              		@ frame_needed = 0, uses_anonymous_args = 0
 415              	.LVL37:
 416 0000 10B5     		push	{r4, lr}
 417              	.LCFI5:
 418              		.cfi_def_cfa_offset 8
 419              		.cfi_offset 4, -8
 420              		.cfi_offset 14, -4
 127:Src/curelib_src/curebuffer.c **** 	if( ((rbuf->idx_front +1)&(rbuf->length -1)) == rbuf->idx_rear ){//buffer overrun error occurs.
 421              		.loc 1 127 0
 422 0002 0288     		ldrh	r2, [r0]
 423 0004 541C     		adds	r4, r2, #1
 424 0006 8388     		ldrh	r3, [r0, #4]
 425 0008 013B     		subs	r3, r3, #1
 426 000a 2340     		ands	r3, r4
 427 000c 4488     		ldrh	r4, [r0, #2]
 428 000e A342     		cmp	r3, r4
 429 0010 0ED0     		beq	.L27
 128:Src/curelib_src/curebuffer.c **** 		return BUFFER_FAILURE;
 129:Src/curelib_src/curebuffer.c **** 	}else{
ARM GAS  /tmp/ccH4oDXT.s 			page 11


 130:Src/curelib_src/curebuffer.c **** 		rbuf->buffer[rbuf->idx_front]=  *inputc;
 430              		.loc 1 130 0
 431 0012 5200     		lsls	r2, r2, #1
 432 0014 0023     		movs	r3, #0
 433 0016 CB5E     		ldrsh	r3, [r1, r3]
 434              	.LVL38:
 435 0018 8168     		ldr	r1, [r0, #8]
 436 001a 8B52     		strh	r3, [r1, r2]
 131:Src/curelib_src/curebuffer.c **** 		rbuf->idx_front++;
 437              		.loc 1 131 0
 438 001c 0388     		ldrh	r3, [r0]
 439 001e 0133     		adds	r3, r3, #1
 440 0020 9BB2     		uxth	r3, r3
 132:Src/curelib_src/curebuffer.c **** 		rbuf->idx_front &= (rbuf->length -1);
 441              		.loc 1 132 0
 442 0022 8288     		ldrh	r2, [r0, #4]
 443 0024 013A     		subs	r2, r2, #1
 444 0026 12B2     		sxth	r2, r2
 445 0028 1340     		ands	r3, r2
 446 002a 0380     		strh	r3, [r0]
 133:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 447              		.loc 1 133 0
 448 002c 0120     		movs	r0, #1
 449              	.LVL39:
 450              	.L26:
 134:Src/curelib_src/curebuffer.c **** 	}
 135:Src/curelib_src/curebuffer.c **** }
 451              		.loc 1 135 0
 452              		@ sp needed
 453 002e 10BD     		pop	{r4, pc}
 454              	.LVL40:
 455              	.L27:
 128:Src/curelib_src/curebuffer.c **** 	}else{
 456              		.loc 1 128 0
 457 0030 0020     		movs	r0, #0
 458              	.LVL41:
 459 0032 FCE7     		b	.L26
 460              		.cfi_endproc
 461              	.LFE7:
 463              		.section	.text.cureRingBuffer16EnqueueIgnoreErr,"ax",%progbits
 464              		.align	1
 465              		.global	cureRingBuffer16EnqueueIgnoreErr
 466              		.syntax unified
 467              		.code	16
 468              		.thumb_func
 469              		.fpu softvfp
 471              	cureRingBuffer16EnqueueIgnoreErr:
 472              	.LFB8:
 136:Src/curelib_src/curebuffer.c **** 
 137:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBuffer16EnqueueIgnoreErr(RingBuffer16 *rbuf, int16_t *inputc)
 138:Src/curelib_src/curebuffer.c **** {
 473              		.loc 1 138 0
 474              		.cfi_startproc
 475              		@ args = 0, pretend = 0, frame = 0
 476              		@ frame_needed = 0, uses_anonymous_args = 0
 477              		@ link register save eliminated.
 478              	.LVL42:
ARM GAS  /tmp/ccH4oDXT.s 			page 12


 139:Src/curelib_src/curebuffer.c **** 
 140:Src/curelib_src/curebuffer.c **** 	rbuf->buffer[rbuf->idx_front]= *inputc;
 479              		.loc 1 140 0
 480 0000 0388     		ldrh	r3, [r0]
 481 0002 5B00     		lsls	r3, r3, #1
 482 0004 0022     		movs	r2, #0
 483 0006 8A5E     		ldrsh	r2, [r1, r2]
 484              	.LVL43:
 485 0008 8168     		ldr	r1, [r0, #8]
 486 000a CA52     		strh	r2, [r1, r3]
 141:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front++;
 487              		.loc 1 141 0
 488 000c 0388     		ldrh	r3, [r0]
 489 000e 0133     		adds	r3, r3, #1
 490 0010 9BB2     		uxth	r3, r3
 142:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front &= (rbuf->length -1);
 491              		.loc 1 142 0
 492 0012 8288     		ldrh	r2, [r0, #4]
 493 0014 013A     		subs	r2, r2, #1
 494 0016 12B2     		sxth	r2, r2
 495 0018 1340     		ands	r3, r2
 496 001a 0380     		strh	r3, [r0]
 143:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 144:Src/curelib_src/curebuffer.c **** 
 145:Src/curelib_src/curebuffer.c **** }
 497              		.loc 1 145 0
 498 001c 0120     		movs	r0, #1
 499              	.LVL44:
 500              		@ sp needed
 501 001e 7047     		bx	lr
 502              		.cfi_endproc
 503              	.LFE8:
 505              		.section	.text.cureRingBuffer16Dequeue,"ax",%progbits
 506              		.align	1
 507              		.global	cureRingBuffer16Dequeue
 508              		.syntax unified
 509              		.code	16
 510              		.thumb_func
 511              		.fpu softvfp
 513              	cureRingBuffer16Dequeue:
 514              	.LFB9:
 146:Src/curelib_src/curebuffer.c **** 
 147:Src/curelib_src/curebuffer.c **** 
 148:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBuffer16Dequeue(RingBuffer16 *rbuf, int16_t *ret)
 149:Src/curelib_src/curebuffer.c **** {
 515              		.loc 1 149 0
 516              		.cfi_startproc
 517              		@ args = 0, pretend = 0, frame = 0
 518              		@ frame_needed = 0, uses_anonymous_args = 0
 519              		@ link register save eliminated.
 520              	.LVL45:
 150:Src/curelib_src/curebuffer.c **** 	if(rbuf->idx_front == rbuf->idx_rear){//if buffer underrun error occurs.
 521              		.loc 1 150 0
 522 0000 0288     		ldrh	r2, [r0]
 523 0002 4388     		ldrh	r3, [r0, #2]
 524 0004 9A42     		cmp	r2, r3
 525 0006 0DD0     		beq	.L31
ARM GAS  /tmp/ccH4oDXT.s 			page 13


 151:Src/curelib_src/curebuffer.c **** 		return BUFFER_FAILURE;
 152:Src/curelib_src/curebuffer.c **** 	}else{
 153:Src/curelib_src/curebuffer.c **** 		*ret = (rbuf->buffer[rbuf->idx_rear]);
 526              		.loc 1 153 0
 527 0008 5B00     		lsls	r3, r3, #1
 528 000a 8268     		ldr	r2, [r0, #8]
 529 000c 9B5E     		ldrsh	r3, [r3, r2]
 530 000e 0B80     		strh	r3, [r1]
 154:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear++;
 531              		.loc 1 154 0
 532 0010 4388     		ldrh	r3, [r0, #2]
 533 0012 0133     		adds	r3, r3, #1
 534 0014 9BB2     		uxth	r3, r3
 155:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear &= (rbuf->length -1);
 535              		.loc 1 155 0
 536 0016 8288     		ldrh	r2, [r0, #4]
 537 0018 013A     		subs	r2, r2, #1
 538 001a 12B2     		sxth	r2, r2
 539 001c 1340     		ands	r3, r2
 540 001e 4380     		strh	r3, [r0, #2]
 156:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 541              		.loc 1 156 0
 542 0020 0120     		movs	r0, #1
 543              	.LVL46:
 544              	.L30:
 157:Src/curelib_src/curebuffer.c **** 	}
 158:Src/curelib_src/curebuffer.c **** }
 545              		.loc 1 158 0
 546              		@ sp needed
 547 0022 7047     		bx	lr
 548              	.LVL47:
 549              	.L31:
 151:Src/curelib_src/curebuffer.c **** 	}else{
 550              		.loc 1 151 0
 551 0024 0020     		movs	r0, #0
 552              	.LVL48:
 553 0026 FCE7     		b	.L30
 554              		.cfi_endproc
 555              	.LFE9:
 557              		.section	.text.cureRingBuffer16GetElement,"ax",%progbits
 558              		.align	1
 559              		.global	cureRingBuffer16GetElement
 560              		.syntax unified
 561              		.code	16
 562              		.thumb_func
 563              		.fpu softvfp
 565              	cureRingBuffer16GetElement:
 566              	.LFB10:
 159:Src/curelib_src/curebuffer.c **** 
 160:Src/curelib_src/curebuffer.c **** 
 161:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBuffer16GetElement(RingBuffer16 *rbuf, int16_t *ret, uint16_t delaynum, uint1
 162:Src/curelib_src/curebuffer.c **** {
 567              		.loc 1 162 0
 568              		.cfi_startproc
 569              		@ args = 0, pretend = 0, frame = 0
 570              		@ frame_needed = 0, uses_anonymous_args = 0
 571              	.LVL49:
ARM GAS  /tmp/ccH4oDXT.s 			page 14


 572 0000 10B5     		push	{r4, lr}
 573              	.LCFI6:
 574              		.cfi_def_cfa_offset 8
 575              		.cfi_offset 4, -8
 576              		.cfi_offset 14, -4
 163:Src/curelib_src/curebuffer.c **** 
 164:Src/curelib_src/curebuffer.c **** 	if(rbuf->idx_front >= delaynum){
 577              		.loc 1 164 0
 578 0002 0488     		ldrh	r4, [r0]
 579 0004 9442     		cmp	r4, r2
 580 0006 0AD2     		bcs	.L35
 165:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear = rbuf->idx_front - delaynum;
 166:Src/curelib_src/curebuffer.c **** 	}else{
 167:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear = delay_buffer_length - (delaynum - rbuf->idx_front);
 581              		.loc 1 167 0
 582 0008 A41A     		subs	r4, r4, r2
 583 000a A4B2     		uxth	r4, r4
 584 000c E318     		adds	r3, r4, r3
 585              	.LVL50:
 586 000e 4380     		strh	r3, [r0, #2]
 587              	.L34:
 168:Src/curelib_src/curebuffer.c **** 	}
 169:Src/curelib_src/curebuffer.c **** 		*ret = (rbuf->buffer[rbuf->idx_rear]);
 588              		.loc 1 169 0
 589 0010 8268     		ldr	r2, [r0, #8]
 590              	.LVL51:
 591 0012 4388     		ldrh	r3, [r0, #2]
 592 0014 5B00     		lsls	r3, r3, #1
 593 0016 9B5E     		ldrsh	r3, [r3, r2]
 594 0018 0B80     		strh	r3, [r1]
 170:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 171:Src/curelib_src/curebuffer.c **** 
 172:Src/curelib_src/curebuffer.c **** }
 595              		.loc 1 172 0
 596 001a 0120     		movs	r0, #1
 597              	.LVL52:
 598              		@ sp needed
 599 001c 10BD     		pop	{r4, pc}
 600              	.LVL53:
 601              	.L35:
 165:Src/curelib_src/curebuffer.c **** 	}else{
 602              		.loc 1 165 0
 603 001e A41A     		subs	r4, r4, r2
 604 0020 4480     		strh	r4, [r0, #2]
 605 0022 F5E7     		b	.L34
 606              		.cfi_endproc
 607              	.LFE10:
 609              		.section	.text.cureRingBufferU32Free,"ax",%progbits
 610              		.align	1
 611              		.global	cureRingBufferU32Free
 612              		.syntax unified
 613              		.code	16
 614              		.thumb_func
 615              		.fpu softvfp
 617              	cureRingBufferU32Free:
 618              	.LFB12:
 173:Src/curelib_src/curebuffer.c **** 
ARM GAS  /tmp/ccH4oDXT.s 			page 15


 174:Src/curelib_src/curebuffer.c **** /////////////////////////////
 175:Src/curelib_src/curebuffer.c **** //methods for uint32_t FIFO.
 176:Src/curelib_src/curebuffer.c **** /////////////////////////////
 177:Src/curelib_src/curebuffer.c **** 
 178:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU32Init(RingBuffer32 *rbuf, uint16_t buflen)
 179:Src/curelib_src/curebuffer.c **** {
 180:Src/curelib_src/curebuffer.c **** 
 181:Src/curelib_src/curebuffer.c **** 	uint32_t i;
 182:Src/curelib_src/curebuffer.c **** 
 183:Src/curelib_src/curebuffer.c **** 	cureRingBufferU32Free(rbuf);
 184:Src/curelib_src/curebuffer.c **** 
 185:Src/curelib_src/curebuffer.c **** 		rbuf->buffer = (uint32_t *)malloc( buflen * sizeof(uint32_t) );
 186:Src/curelib_src/curebuffer.c **** 		if(NULL == rbuf->buffer){
 187:Src/curelib_src/curebuffer.c **** 			return BUFFER_FAILURE;
 188:Src/curelib_src/curebuffer.c **** 		}
 189:Src/curelib_src/curebuffer.c **** 		for(i=0; i<buflen; i++){
 190:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 191:Src/curelib_src/curebuffer.c **** 		}
 192:Src/curelib_src/curebuffer.c **** 	rbuf->length = buflen;
 193:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 194:Src/curelib_src/curebuffer.c **** }
 195:Src/curelib_src/curebuffer.c **** 
 196:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU32Free(RingBuffer32 *rbuf)
 197:Src/curelib_src/curebuffer.c **** {
 619              		.loc 1 197 0
 620              		.cfi_startproc
 621              		@ args = 0, pretend = 0, frame = 0
 622              		@ frame_needed = 0, uses_anonymous_args = 0
 623              	.LVL54:
 624 0000 10B5     		push	{r4, lr}
 625              	.LCFI7:
 626              		.cfi_def_cfa_offset 8
 627              		.cfi_offset 4, -8
 628              		.cfi_offset 14, -4
 629 0002 0400     		movs	r4, r0
 198:Src/curelib_src/curebuffer.c **** 	if(NULL != rbuf->buffer){
 630              		.loc 1 198 0
 631 0004 8068     		ldr	r0, [r0, #8]
 632              	.LVL55:
 633 0006 0028     		cmp	r0, #0
 634 0008 01D0     		beq	.L37
 199:Src/curelib_src/curebuffer.c **** 		free(rbuf->buffer);
 635              		.loc 1 199 0
 636 000a FFF7FEFF 		bl	free
 637              	.LVL56:
 638              	.L37:
 200:Src/curelib_src/curebuffer.c **** 	}
 201:Src/curelib_src/curebuffer.c **** 
 202:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front = rbuf->idx_rear = 0;
 639              		.loc 1 202 0
 640 000e 0023     		movs	r3, #0
 641 0010 6380     		strh	r3, [r4, #2]
 642 0012 2380     		strh	r3, [r4]
 203:Src/curelib_src/curebuffer.c **** 	rbuf->length = 0;
 643              		.loc 1 203 0
 644 0014 A380     		strh	r3, [r4, #4]
 204:Src/curelib_src/curebuffer.c **** 
ARM GAS  /tmp/ccH4oDXT.s 			page 16


 205:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 206:Src/curelib_src/curebuffer.c **** }
 645              		.loc 1 206 0
 646 0016 0120     		movs	r0, #1
 647              		@ sp needed
 648              	.LVL57:
 649 0018 10BD     		pop	{r4, pc}
 650              		.cfi_endproc
 651              	.LFE12:
 653              		.section	.text.cureRingBufferU32Init,"ax",%progbits
 654              		.align	1
 655              		.global	cureRingBufferU32Init
 656              		.syntax unified
 657              		.code	16
 658              		.thumb_func
 659              		.fpu softvfp
 661              	cureRingBufferU32Init:
 662              	.LFB11:
 179:Src/curelib_src/curebuffer.c **** 
 663              		.loc 1 179 0
 664              		.cfi_startproc
 665              		@ args = 0, pretend = 0, frame = 0
 666              		@ frame_needed = 0, uses_anonymous_args = 0
 667              	.LVL58:
 668 0000 70B5     		push	{r4, r5, r6, lr}
 669              	.LCFI8:
 670              		.cfi_def_cfa_offset 16
 671              		.cfi_offset 4, -16
 672              		.cfi_offset 5, -12
 673              		.cfi_offset 6, -8
 674              		.cfi_offset 14, -4
 675 0002 0400     		movs	r4, r0
 676 0004 0E00     		movs	r6, r1
 183:Src/curelib_src/curebuffer.c **** 
 677              		.loc 1 183 0
 678 0006 FFF7FEFF 		bl	cureRingBufferU32Free
 679              	.LVL59:
 185:Src/curelib_src/curebuffer.c **** 		if(NULL == rbuf->buffer){
 680              		.loc 1 185 0
 681 000a 3500     		movs	r5, r6
 682 000c B000     		lsls	r0, r6, #2
 683 000e FFF7FEFF 		bl	malloc
 684              	.LVL60:
 685 0012 A060     		str	r0, [r4, #8]
 186:Src/curelib_src/curebuffer.c **** 			return BUFFER_FAILURE;
 686              		.loc 1 186 0
 687 0014 0028     		cmp	r0, #0
 688 0016 0DD0     		beq	.L42
 189:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 689              		.loc 1 189 0
 690 0018 0023     		movs	r3, #0
 691 001a 06E0     		b	.L40
 692              	.LVL61:
 693              	.L41:
 190:Src/curelib_src/curebuffer.c **** 		}
 694              		.loc 1 190 0 discriminator 3
 695 001c 9A00     		lsls	r2, r3, #2
ARM GAS  /tmp/ccH4oDXT.s 			page 17


 696 001e A168     		ldr	r1, [r4, #8]
 697 0020 8C46     		mov	ip, r1
 698 0022 6244     		add	r2, r2, ip
 699 0024 0021     		movs	r1, #0
 700 0026 1160     		str	r1, [r2]
 189:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 701              		.loc 1 189 0 discriminator 3
 702 0028 0133     		adds	r3, r3, #1
 703              	.LVL62:
 704              	.L40:
 189:Src/curelib_src/curebuffer.c **** 			rbuf->buffer[i] = 0;
 705              		.loc 1 189 0 is_stmt 0 discriminator 1
 706 002a 9D42     		cmp	r5, r3
 707 002c F6D8     		bhi	.L41
 192:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 708              		.loc 1 192 0 is_stmt 1
 709 002e A680     		strh	r6, [r4, #4]
 193:Src/curelib_src/curebuffer.c **** }
 710              		.loc 1 193 0
 711 0030 0120     		movs	r0, #1
 712              	.LVL63:
 713              	.L39:
 194:Src/curelib_src/curebuffer.c **** 
 714              		.loc 1 194 0
 715              		@ sp needed
 716              	.LVL64:
 717 0032 70BD     		pop	{r4, r5, r6, pc}
 718              	.LVL65:
 719              	.L42:
 187:Src/curelib_src/curebuffer.c **** 		}
 720              		.loc 1 187 0
 721 0034 0020     		movs	r0, #0
 722 0036 FCE7     		b	.L39
 723              		.cfi_endproc
 724              	.LFE11:
 726              		.section	.text.cureRingBufferU32Enqueue,"ax",%progbits
 727              		.align	1
 728              		.global	cureRingBufferU32Enqueue
 729              		.syntax unified
 730              		.code	16
 731              		.thumb_func
 732              		.fpu softvfp
 734              	cureRingBufferU32Enqueue:
 735              	.LFB13:
 207:Src/curelib_src/curebuffer.c **** 
 208:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU32Enqueue(RingBuffer32 *rbuf, uint32_t *inputc)
 209:Src/curelib_src/curebuffer.c **** {
 736              		.loc 1 209 0
 737              		.cfi_startproc
 738              		@ args = 0, pretend = 0, frame = 0
 739              		@ frame_needed = 0, uses_anonymous_args = 0
 740              	.LVL66:
 741 0000 10B5     		push	{r4, lr}
 742              	.LCFI9:
 743              		.cfi_def_cfa_offset 8
 744              		.cfi_offset 4, -8
 745              		.cfi_offset 14, -4
ARM GAS  /tmp/ccH4oDXT.s 			page 18


 210:Src/curelib_src/curebuffer.c **** 	if( ((rbuf->idx_front +1)&(rbuf->length -1)) == rbuf->idx_rear ){//buffer overrun error occurs.
 746              		.loc 1 210 0
 747 0002 0288     		ldrh	r2, [r0]
 748 0004 541C     		adds	r4, r2, #1
 749 0006 8388     		ldrh	r3, [r0, #4]
 750 0008 013B     		subs	r3, r3, #1
 751 000a 2340     		ands	r3, r4
 752 000c 4488     		ldrh	r4, [r0, #2]
 753 000e A342     		cmp	r3, r4
 754 0010 0DD0     		beq	.L45
 211:Src/curelib_src/curebuffer.c **** 		return BUFFER_FAILURE;
 212:Src/curelib_src/curebuffer.c **** 	}else{
 213:Src/curelib_src/curebuffer.c **** 		rbuf->buffer[rbuf->idx_front]=  *inputc;
 755              		.loc 1 213 0
 756 0012 9200     		lsls	r2, r2, #2
 757 0014 0B68     		ldr	r3, [r1]
 758 0016 8168     		ldr	r1, [r0, #8]
 759              	.LVL67:
 760 0018 8B50     		str	r3, [r1, r2]
 214:Src/curelib_src/curebuffer.c **** 		rbuf->idx_front++;
 761              		.loc 1 214 0
 762 001a 0388     		ldrh	r3, [r0]
 763 001c 0133     		adds	r3, r3, #1
 764 001e 9BB2     		uxth	r3, r3
 215:Src/curelib_src/curebuffer.c **** 		rbuf->idx_front &= (rbuf->length -1);
 765              		.loc 1 215 0
 766 0020 8288     		ldrh	r2, [r0, #4]
 767 0022 013A     		subs	r2, r2, #1
 768 0024 12B2     		sxth	r2, r2
 769 0026 1340     		ands	r3, r2
 770 0028 0380     		strh	r3, [r0]
 216:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 771              		.loc 1 216 0
 772 002a 0120     		movs	r0, #1
 773              	.LVL68:
 774              	.L44:
 217:Src/curelib_src/curebuffer.c **** 	}
 218:Src/curelib_src/curebuffer.c **** }
 775              		.loc 1 218 0
 776              		@ sp needed
 777 002c 10BD     		pop	{r4, pc}
 778              	.LVL69:
 779              	.L45:
 211:Src/curelib_src/curebuffer.c **** 	}else{
 780              		.loc 1 211 0
 781 002e 0020     		movs	r0, #0
 782              	.LVL70:
 783 0030 FCE7     		b	.L44
 784              		.cfi_endproc
 785              	.LFE13:
 787              		.section	.text.cureRingBufferU32EnqueueIgnoreErr,"ax",%progbits
 788              		.align	1
 789              		.global	cureRingBufferU32EnqueueIgnoreErr
 790              		.syntax unified
 791              		.code	16
 792              		.thumb_func
 793              		.fpu softvfp
ARM GAS  /tmp/ccH4oDXT.s 			page 19


 795              	cureRingBufferU32EnqueueIgnoreErr:
 796              	.LFB14:
 219:Src/curelib_src/curebuffer.c **** 
 220:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU32EnqueueIgnoreErr(RingBuffer32 *rbuf, uint32_t *inputc)
 221:Src/curelib_src/curebuffer.c **** {
 797              		.loc 1 221 0
 798              		.cfi_startproc
 799              		@ args = 0, pretend = 0, frame = 0
 800              		@ frame_needed = 0, uses_anonymous_args = 0
 801              		@ link register save eliminated.
 802              	.LVL71:
 222:Src/curelib_src/curebuffer.c **** 
 223:Src/curelib_src/curebuffer.c **** 	rbuf->buffer[rbuf->idx_front]= *inputc;
 803              		.loc 1 223 0
 804 0000 0388     		ldrh	r3, [r0]
 805 0002 9B00     		lsls	r3, r3, #2
 806 0004 0A68     		ldr	r2, [r1]
 807 0006 8168     		ldr	r1, [r0, #8]
 808              	.LVL72:
 809 0008 CA50     		str	r2, [r1, r3]
 224:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front++;
 810              		.loc 1 224 0
 811 000a 0388     		ldrh	r3, [r0]
 812 000c 0133     		adds	r3, r3, #1
 813 000e 9BB2     		uxth	r3, r3
 225:Src/curelib_src/curebuffer.c **** 	rbuf->idx_front &= (rbuf->length -1);
 814              		.loc 1 225 0
 815 0010 8288     		ldrh	r2, [r0, #4]
 816 0012 013A     		subs	r2, r2, #1
 817 0014 12B2     		sxth	r2, r2
 818 0016 1340     		ands	r3, r2
 819 0018 0380     		strh	r3, [r0]
 226:Src/curelib_src/curebuffer.c **** 	return BUFFER_SUCCESS;
 227:Src/curelib_src/curebuffer.c **** 
 228:Src/curelib_src/curebuffer.c **** }
 820              		.loc 1 228 0
 821 001a 0120     		movs	r0, #1
 822              	.LVL73:
 823              		@ sp needed
 824 001c 7047     		bx	lr
 825              		.cfi_endproc
 826              	.LFE14:
 828              		.section	.text.cureRingBufferU32Dequeue,"ax",%progbits
 829              		.align	1
 830              		.global	cureRingBufferU32Dequeue
 831              		.syntax unified
 832              		.code	16
 833              		.thumb_func
 834              		.fpu softvfp
 836              	cureRingBufferU32Dequeue:
 837              	.LFB15:
 229:Src/curelib_src/curebuffer.c **** 
 230:Src/curelib_src/curebuffer.c **** 
 231:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU32Dequeue(RingBuffer32 *rbuf, uint32_t *ret)
 232:Src/curelib_src/curebuffer.c **** {
 838              		.loc 1 232 0
 839              		.cfi_startproc
ARM GAS  /tmp/ccH4oDXT.s 			page 20


 840              		@ args = 0, pretend = 0, frame = 0
 841              		@ frame_needed = 0, uses_anonymous_args = 0
 842              		@ link register save eliminated.
 843              	.LVL74:
 233:Src/curelib_src/curebuffer.c **** 	if(rbuf->idx_front == rbuf->idx_rear){//if buffer underrun error occurs.
 844              		.loc 1 233 0
 845 0000 0288     		ldrh	r2, [r0]
 846 0002 4388     		ldrh	r3, [r0, #2]
 847 0004 9A42     		cmp	r2, r3
 848 0006 0DD0     		beq	.L49
 234:Src/curelib_src/curebuffer.c **** 		return BUFFER_FAILURE;
 235:Src/curelib_src/curebuffer.c **** 	}else{
 236:Src/curelib_src/curebuffer.c **** 		*ret = (rbuf->buffer[rbuf->idx_rear]);
 849              		.loc 1 236 0
 850 0008 8268     		ldr	r2, [r0, #8]
 851 000a 9B00     		lsls	r3, r3, #2
 852 000c 9B58     		ldr	r3, [r3, r2]
 853 000e 0B60     		str	r3, [r1]
 237:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear++;
 854              		.loc 1 237 0
 855 0010 4388     		ldrh	r3, [r0, #2]
 856 0012 0133     		adds	r3, r3, #1
 857 0014 9BB2     		uxth	r3, r3
 238:Src/curelib_src/curebuffer.c **** 		rbuf->idx_rear &= (rbuf->length -1);
 858              		.loc 1 238 0
 859 0016 8288     		ldrh	r2, [r0, #4]
 860 0018 013A     		subs	r2, r2, #1
 861 001a 12B2     		sxth	r2, r2
 862 001c 1340     		ands	r3, r2
 863 001e 4380     		strh	r3, [r0, #2]
 239:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 864              		.loc 1 239 0
 865 0020 0120     		movs	r0, #1
 866              	.LVL75:
 867              	.L48:
 240:Src/curelib_src/curebuffer.c **** 	}
 241:Src/curelib_src/curebuffer.c **** }
 868              		.loc 1 241 0
 869              		@ sp needed
 870 0022 7047     		bx	lr
 871              	.LVL76:
 872              	.L49:
 234:Src/curelib_src/curebuffer.c **** 	}else{
 873              		.loc 1 234 0
 874 0024 0020     		movs	r0, #0
 875              	.LVL77:
 876 0026 FCE7     		b	.L48
 877              		.cfi_endproc
 878              	.LFE15:
 880              		.section	.text.cureRingBufferU32GetElement,"ax",%progbits
 881              		.align	1
 882              		.global	cureRingBufferU32GetElement
 883              		.syntax unified
 884              		.code	16
 885              		.thumb_func
 886              		.fpu softvfp
 888              	cureRingBufferU32GetElement:
ARM GAS  /tmp/ccH4oDXT.s 			page 21


 889              	.LFB16:
 242:Src/curelib_src/curebuffer.c **** 
 243:Src/curelib_src/curebuffer.c **** 
 244:Src/curelib_src/curebuffer.c **** BUFFER_STATUS cureRingBufferU32GetElement(RingBuffer32 *rbuf, uint32_t *ret, uint16_t delaynum, uin
 245:Src/curelib_src/curebuffer.c **** {
 890              		.loc 1 245 0
 891              		.cfi_startproc
 892              		@ args = 0, pretend = 0, frame = 0
 893              		@ frame_needed = 0, uses_anonymous_args = 0
 894              	.LVL78:
 895 0000 10B5     		push	{r4, lr}
 896              	.LCFI10:
 897              		.cfi_def_cfa_offset 8
 898              		.cfi_offset 4, -8
 899              		.cfi_offset 14, -4
 246:Src/curelib_src/curebuffer.c **** 	uint16_t buf;
 247:Src/curelib_src/curebuffer.c **** 
 248:Src/curelib_src/curebuffer.c **** 
 249:Src/curelib_src/curebuffer.c **** 	if(rbuf->idx_front >= delaynum){
 900              		.loc 1 249 0
 901 0002 0488     		ldrh	r4, [r0]
 902 0004 9442     		cmp	r4, r2
 903 0006 09D2     		bcs	.L53
 250:Src/curelib_src/curebuffer.c **** 		buf = rbuf->idx_front - delaynum;
 251:Src/curelib_src/curebuffer.c **** 	}else{
 252:Src/curelib_src/curebuffer.c **** 		buf = delay_buffer_length - (delaynum - rbuf->idx_front);
 904              		.loc 1 252 0
 905 0008 A41A     		subs	r4, r4, r2
 906 000a A4B2     		uxth	r4, r4
 907 000c E418     		adds	r4, r4, r3
 908 000e A4B2     		uxth	r4, r4
 909              	.LVL79:
 910              	.L52:
 253:Src/curelib_src/curebuffer.c **** 	}
 254:Src/curelib_src/curebuffer.c **** 		*ret = (rbuf->buffer[buf]);
 911              		.loc 1 254 0
 912 0010 8368     		ldr	r3, [r0, #8]
 913              	.LVL80:
 914 0012 A400     		lsls	r4, r4, #2
 915              	.LVL81:
 916 0014 E358     		ldr	r3, [r4, r3]
 917 0016 0B60     		str	r3, [r1]
 255:Src/curelib_src/curebuffer.c **** 		return BUFFER_SUCCESS;
 256:Src/curelib_src/curebuffer.c **** 
 257:Src/curelib_src/curebuffer.c **** }
 918              		.loc 1 257 0
 919 0018 0120     		movs	r0, #1
 920              	.LVL82:
 921              		@ sp needed
 922 001a 10BD     		pop	{r4, pc}
 923              	.LVL83:
 924              	.L53:
 250:Src/curelib_src/curebuffer.c **** 	}else{
 925              		.loc 1 250 0
 926 001c A41A     		subs	r4, r4, r2
 927 001e A4B2     		uxth	r4, r4
 928              	.LVL84:
ARM GAS  /tmp/ccH4oDXT.s 			page 22


 929 0020 F6E7     		b	.L52
 930              		.cfi_endproc
 931              	.LFE16:
 933              		.text
 934              	.Letext0:
 935              		.file 2 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/machin
 936              		.file 3 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_s
 937              		.file 4 "Inc/curelib_inc/curebuffer.h"
 938              		.file 5 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/lo
 939              		.file 6 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_t
 940              		.file 7 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/lib/gcc/arm-none-eabi/7.3.1/
 941              		.file 8 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/re
 942              		.file 9 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/stdlib
ARM GAS  /tmp/ccH4oDXT.s 			page 23


DEFINED SYMBOLS
                            *ABS*:0000000000000000 curebuffer.c
     /tmp/ccH4oDXT.s:16     .text.cureRingBufferU8Free:0000000000000000 $t
     /tmp/ccH4oDXT.s:23     .text.cureRingBufferU8Free:0000000000000000 cureRingBufferU8Free
     /tmp/ccH4oDXT.s:61     .text.cureRingBufferU8Init:0000000000000000 $t
     /tmp/ccH4oDXT.s:68     .text.cureRingBufferU8Init:0000000000000000 cureRingBufferU8Init
     /tmp/ccH4oDXT.s:132    .text.cureRingBufferU8Enqueue:0000000000000000 $t
     /tmp/ccH4oDXT.s:139    .text.cureRingBufferU8Enqueue:0000000000000000 cureRingBufferU8Enqueue
     /tmp/ccH4oDXT.s:192    .text.cureRingBufferU8Dequeue:0000000000000000 $t
     /tmp/ccH4oDXT.s:199    .text.cureRingBufferU8Dequeue:0000000000000000 cureRingBufferU8Dequeue
     /tmp/ccH4oDXT.s:243    .text._cureRingBufferU8GetUsedSize:0000000000000000 $t
     /tmp/ccH4oDXT.s:250    .text._cureRingBufferU8GetUsedSize:0000000000000000 _cureRingBufferU8GetUsedSize
     /tmp/ccH4oDXT.s:285    .text.cureRingBuffer16Free:0000000000000000 $t
     /tmp/ccH4oDXT.s:292    .text.cureRingBuffer16Free:0000000000000000 cureRingBuffer16Free
     /tmp/ccH4oDXT.s:329    .text.cureRingBuffer16Init:0000000000000000 $t
     /tmp/ccH4oDXT.s:336    .text.cureRingBuffer16Init:0000000000000000 cureRingBuffer16Init
     /tmp/ccH4oDXT.s:402    .text.cureRingBuffer16Enqueue:0000000000000000 $t
     /tmp/ccH4oDXT.s:409    .text.cureRingBuffer16Enqueue:0000000000000000 cureRingBuffer16Enqueue
     /tmp/ccH4oDXT.s:464    .text.cureRingBuffer16EnqueueIgnoreErr:0000000000000000 $t
     /tmp/ccH4oDXT.s:471    .text.cureRingBuffer16EnqueueIgnoreErr:0000000000000000 cureRingBuffer16EnqueueIgnoreErr
     /tmp/ccH4oDXT.s:506    .text.cureRingBuffer16Dequeue:0000000000000000 $t
     /tmp/ccH4oDXT.s:513    .text.cureRingBuffer16Dequeue:0000000000000000 cureRingBuffer16Dequeue
     /tmp/ccH4oDXT.s:558    .text.cureRingBuffer16GetElement:0000000000000000 $t
     /tmp/ccH4oDXT.s:565    .text.cureRingBuffer16GetElement:0000000000000000 cureRingBuffer16GetElement
     /tmp/ccH4oDXT.s:610    .text.cureRingBufferU32Free:0000000000000000 $t
     /tmp/ccH4oDXT.s:617    .text.cureRingBufferU32Free:0000000000000000 cureRingBufferU32Free
     /tmp/ccH4oDXT.s:654    .text.cureRingBufferU32Init:0000000000000000 $t
     /tmp/ccH4oDXT.s:661    .text.cureRingBufferU32Init:0000000000000000 cureRingBufferU32Init
     /tmp/ccH4oDXT.s:727    .text.cureRingBufferU32Enqueue:0000000000000000 $t
     /tmp/ccH4oDXT.s:734    .text.cureRingBufferU32Enqueue:0000000000000000 cureRingBufferU32Enqueue
     /tmp/ccH4oDXT.s:788    .text.cureRingBufferU32EnqueueIgnoreErr:0000000000000000 $t
     /tmp/ccH4oDXT.s:795    .text.cureRingBufferU32EnqueueIgnoreErr:0000000000000000 cureRingBufferU32EnqueueIgnoreErr
     /tmp/ccH4oDXT.s:829    .text.cureRingBufferU32Dequeue:0000000000000000 $t
     /tmp/ccH4oDXT.s:836    .text.cureRingBufferU32Dequeue:0000000000000000 cureRingBufferU32Dequeue
     /tmp/ccH4oDXT.s:881    .text.cureRingBufferU32GetElement:0000000000000000 $t
     /tmp/ccH4oDXT.s:888    .text.cureRingBufferU32GetElement:0000000000000000 cureRingBufferU32GetElement

UNDEFINED SYMBOLS
free
malloc