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