History

fix 32-bit parameters issue on arm64 assembly function

Karina committed 10 years ago

Commit d34e2091 parent 794376413 files · +322 −40Browse files

Showing the changes to codec/processing/src (4 of 13 files). Show all

Unified · Split

4 files
  1. codec/processing/src/arm64/adaptive_quantization_aarch64_neon.S +2 −0
  2. codec/processing/src/arm64/down_sample_aarch64_neon.S +13 −0
  3. codec/processing/src/arm64/pixel_sad_aarch64_neon.S +3 −1
  4. codec/processing/src/arm64/vaa_calc_aarch64_neon.S +6 −0
codec/processing/src/arm64/adaptive_quantization_aarch64_neon.S+2−0
@@ -33,6 +33,8 @@ · 32 unmodified lines
3333 #ifdef HAVE_NEON_AARCH64
3434 #include "arm_arch64_common_macro.S"
3535 WELS_ASM_AARCH64_FUNC_BEGIN SampleVariance16x16_AArch64_neon
36+ SIGN_EXTENSION x1, w1
37+ SIGN_EXTENSION x3, w3
3638 ld1 {v1.16b}, [x0], x1 //save the ref data (16bytes)
3739 ld1 {v0.16b}, [x2], x3 //save the src data (16bytes)
3840 uabd v2.16b, v0.16b, v1.16b
codec/processing/src/arm64/down_sample_aarch64_neon.S+13−0
@@ -174,6 +174,9 @@ comp_ds_bilinear_onethird_loop0: · 173 unmodified lines
174174 //restore the tailer for the unasigned size
175175 st1 {v16.16b}, [x0]
176176 WELS_ASM_AARCH64_FUNC_END
177+;void DyadicBilinearQuarterDownsampler_AArch64_neon(uint8_t* pDst, const int32_t kiDstStride,
178+;uint8_t* pSrc, const int32_t kiSrcStride,
179+;const int32_t kiSrcWidth, const int32_t kiHeight);
177180
178181 WELS_ASM_AARCH64_FUNC_BEGIN DyadicBilinearQuarterDownsampler_AArch64_neon
179182 //Initialize the register
@@ -229,6 +232,9 @@ comp_ds_bilinear_quarter_loop0: · 49 unmodified lines
229232 st1 {v16.16b}, [x0]
230233 WELS_ASM_AARCH64_FUNC_END
231234
235+;void GeneralBilinearAccurateDownsampler_AArch64_neon (uint8_t* pDst, const int32_t kiDstStride,
236+; const int32_t kiDstWidth, const int32_t kiDstHeight,
237+; uint8_t* pSrc, const int32_t kiSrcStride, const uint32_t kuiScaleX, const uint32_t kuiScaleY);
232238 WELS_ASM_AARCH64_FUNC_BEGIN GeneralBilinearAccurateDownsampler_AArch64_neon
233239 mov w10, #32767
234240 and w8, w6, w10
@@ -259,6 +265,13 @@ WELS_ASM_AARCH64_FUNC_BEGIN GeneralBilinearAccurateDownsampler_AArch64_neon · 24 unmodified lines
259265
260266 eor v26.16b, v26.16b, v26.16b
261267 eor v27.16b, v27.16b, v27.16b
268+ SIGN_EXTENSION x1, w1
269+ SIGN_EXTENSION x2, w2
270+ SIGN_EXTENSION x3, w3
271+ SIGN_EXTENSION x5, w5
272+ SIGN_EXTENSION x6, w6
273+ SIGN_EXTENSION x7, w7
274+
262275 sub x1, x1, x2
263276 sub x3, x3, #1
264277
codec/processing/src/arm64/pixel_sad_aarch64_neon.S+3−1
@@ -32,8 +32,10 @@ · 31 unmodified lines
3232
3333 #ifdef HAVE_NEON_AARCH64
3434 #include "arm_arch64_common_macro.S"
35−
35+;int32_t WelsProcessingSampleSad8x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
3636 WELS_ASM_AARCH64_FUNC_BEGIN WelsProcessingSampleSad8x8_AArch64_neon
37+ SIGN_EXTENSION x1, w1
38+ SIGN_EXTENSION x3, w3
3739 ld1 {v0.8b}, [x0], x1
3840 ld1 {v1.8b}, [x2], x3
3941 uabdl v2.8h, v0.8b, v1.8b
codec/processing/src/arm64/vaa_calc_aarch64_neon.S+6−0
@@ -61,6 +61,8 @@ · 60 unmodified lines
6161 */
6262 WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSad_AArch64_neon
6363 eor v31.16b, v31.16b, v31.16b
64+
65+ SIGN_EXTENSION x4, w4
6466 lsl x9, x4, #4
6567 sub x10, x9, #16 //x10 keep the 16*pic_stride-16
6668 sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width
@@ -119,6 +121,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadBgd_AArch64_neon · 52 unmodified lines
119121 ldr x15, [sp, #0]
120122 eor v28.16b, v28.16b, v28.16b
121123
124+ SIGN_EXTENSION x4, w4
122125 lsl x9, x4, #4
123126 sub x10, x9, #16 //x10 keep the 16*pic_stride-16
124127 sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width
@@ -260,6 +263,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadSsdBgd_AArch64_neon · 135 unmodified lines
260263 ldr x15, [sp, #24] //p_mad8x8
261264 eor v17.16b, v17.16b, v17.16b
262265
266+ SIGN_EXTENSION x4, w4
263267 lsl x9, x4, #4
264268 sub x10, x9, #16 //x10 keep the 16*pic_stride-16
265269 sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width
@@ -400,6 +404,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadSsd_AArch64_neon · 134 unmodified lines
400404 ldr x13, [sp, #8] //psqdiff16x16
401405 eor v17.16b, v17.16b, v17.16b
402406
407+ SIGN_EXTENSION x4, w4
403408 lsl x9, x4, #4
404409 sub x10, x9, #16 //x10 keep the 16*pic_stride-16
405410 sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width
@@ -500,6 +505,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadVar_AArch64_neon · 94 unmodified lines
500505 ldr x12, [sp, #0] //psqsum16x16
501506 eor v17.16b, v17.16b, v17.16b
502507
508+ SIGN_EXTENSION x4, w4
503509 lsl x9, x4, #4
504510 sub x10, x9, #16 //x10 keep the 16*pic_stride-16
505511 sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t