Tremolo (an ARM optimised version of the Tremor library for doing Ogg Vorbis decompression)
diff --git a/Tremolo/floor1ARM.s b/Tremolo/floor1ARM.s
new file mode 100644
index 0000000..8ec201e
--- /dev/null
+++ b/Tremolo/floor1ARM.s
@@ -0,0 +1,36 @@
+@ Tremolo library
+@ Copyright (C) 2009 Robin Watts for Pinknoise Productions Ltd
+
+    .text
+
+	.global	render_lineARM
+
+render_lineARM:
+	@ r0 = n
+	@ r1 = d
+	@ r2 = floor
+	@ r3 = base
+	@ <> = err
+	@ <> = adx
+	@ <> = ady
+	MOV	r12,r13
+	STMFD	r13!,{r4-r6,r11,r14}
+	LDMFD	r12,{r11,r12,r14}	@ r11 = err
+					@ r12 = adx
+					@ r14 = ady
+rl_loop:
+	LDR	r4,[r1]			@ r4 = *d
+	LDR	r5,[r2],r3,LSL #2	@ r5 = *floor    r2 = floor+base
+	SUBS	r11,r11,r14		@ err -= ady
+	ADDLT	r11,r11,r12		@ if (err < 0) err+=adx
+	SMULL	r6, r5, r4, r5		@ (r6,r5) = *d * *floor
+	ADDLT	r2, r2, #4		@              floor+=1
+	MOVS	r6, r6, LSR #15
+	ADC	r5, r6, r5, LSL #17	@ r5 = MULT31_SHIFT15
+	STR	r5,[r1],#4
+	SUBS	r0, r0, #1
+	BGT	rl_loop
+
+	LDMFD	r13!,{r4-r6,r11,PC}
+
+	@ END