sobel_fipr_store_queue: free r1/r2
This commit is contained in:
parent
9a2e89d95c
commit
347b2c9731
@ -272,7 +272,7 @@ void make_temp()
|
||||
sum += n & 0xff;
|
||||
n >>= 8;
|
||||
sum += n & 0xff;
|
||||
temp[i] = (float)(sum * 0.25);
|
||||
temp[i] = (float)(sum);
|
||||
}
|
||||
}
|
||||
|
||||
@ -425,5 +425,8 @@ void main()
|
||||
//serial::string("convolve end\n");
|
||||
|
||||
theta += half_degree;
|
||||
frame_ix += 1;
|
||||
if (frame_ix > 20)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,9 @@ __setup:
|
||||
/* constants */
|
||||
mova _const_100f,r0 /* r11 as temporary */
|
||||
fmov.s @r0,fr0
|
||||
fschg
|
||||
fmov dr0,xd0
|
||||
fschg
|
||||
|
||||
/* save C arguments */
|
||||
mov r4,r0 /* r4 saved as r0 */
|
||||
@ -118,7 +120,9 @@ _loop_width:
|
||||
fsts FPUL,fr3
|
||||
fadd fr3,fr7
|
||||
|
||||
fmov dr0,xd0 /* load 100.f constant */
|
||||
fschg
|
||||
fmov xd0,dr0 /* load 100.f constant */
|
||||
fschg
|
||||
|
||||
add #4,r0 /* next pixel */
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
/* y multiplication */
|
||||
mov #4,r1 /* r1 : temporary */
|
||||
fmov.s @r0,fr0 /* 0 */
|
||||
mov #8,r2 /* r2 : temporary */
|
||||
fmov.s @(r0,r1),fr1 /* 1 */
|
||||
fmov.s @(r0,r2),fr2 /* 2 */
|
||||
fldi0 fr3
|
||||
fipr fv8,fv0
|
||||
|
||||
fmov.s @(r0,r5),fr4 /* 1280 */
|
||||
fmov.s @(r0,r6),fr5 /* 1281 */
|
||||
fmov.s @(r0,r7),fr6 /* 1282 */
|
||||
fmov.s @(r0,r5),fr4 /* r0 + 1280 */
|
||||
fmov.s @(r0,r6),fr5 /* r0 + 1281 */
|
||||
fmov.s @(r0,r7),fr6 /* r0 + 1282 */
|
||||
fldi0 fr7
|
||||
fipr fv12,fv4
|
||||
|
||||
@ -34,10 +36,10 @@
|
||||
fmov fr2,fr4
|
||||
fmov fr3,fr2
|
||||
/* load fr1,fr5 */
|
||||
fmov.s @(r0,r3),fr1 /* 640 */
|
||||
fmov.s @(r0,r3),fr1 /* r0 + 640 */
|
||||
fldi0 fr3
|
||||
fipr fv8,fv0
|
||||
fmov.s @(r0,r4),fr5 /* 642 */
|
||||
fmov.s @(r0,r4),fr5 /* r0 + 642 */
|
||||
fldi0 fr7
|
||||
fipr fv12,fv4
|
||||
|
||||
@ -47,9 +49,10 @@
|
||||
fsts FPUL,fr3
|
||||
fadd fr3,fr7
|
||||
|
||||
fmov dr0,xd0 /* load 100.f constant */
|
||||
|
||||
fschg
|
||||
fmov xd0,dr0 /* load 100.f constant */
|
||||
fcmp/gt fr0,fr7
|
||||
fschg
|
||||
movt r9
|
||||
add #-1,r9
|
||||
|
||||
|
@ -2,8 +2,8 @@
|
||||
.global _sobel_fipr_store_queue
|
||||
_sobel_fipr_store_queue:
|
||||
/* r0: var (input address) */
|
||||
/* r1: const 1 4 */
|
||||
/* r2: const 2 4 */
|
||||
/* r1: (temporary) */
|
||||
/* r2: (temporary) */
|
||||
/* r3: const 640 4 */
|
||||
/* r4: const 642 4 */
|
||||
/* r5: const 1280 4 */
|
||||
@ -45,6 +45,9 @@ __setup:
|
||||
/* constants */
|
||||
mova _const_100f,r0 /* use r0 as temporary */
|
||||
fmov.s @r0,fr0
|
||||
fschg
|
||||
fmov dr0,xd0
|
||||
fschg
|
||||
|
||||
/* set qacr0 */
|
||||
mov r5,r0 /* r5: C argument */
|
||||
@ -66,8 +69,6 @@ __setup:
|
||||
mov r4,r0 /* r4 saved as r0 */
|
||||
|
||||
/* offsets */
|
||||
mov #(1 * 4),r1
|
||||
mov #(2 * 4),r2
|
||||
mov.w _const_640,r3
|
||||
mov.w _const_642,r4
|
||||
mov.w _const_1280,r5
|
||||
@ -81,7 +82,7 @@ __setup:
|
||||
nop
|
||||
|
||||
.align 4
|
||||
_const_100f: .float 100
|
||||
_const_100f: .float 1900
|
||||
|
||||
_const_store_queue: .long 0xe0000000
|
||||
_const_store_queue_mask: .long 0x03ffffc0 /* (0xffffffff & (~0b111111)) & (~(0b111111 << 26)) */
|
||||
|
Loading…
x
Reference in New Issue
Block a user