From 7e77fe81d1220ac460e3c2f2afd05e9122ca8cf1 Mon Sep 17 00:00:00 2001 From: Zorro Liu Date: Mon, 14 Jul 2025 16:31:33 +0800 Subject: [PATCH] drm/rockchip: ebc_dev: release version v8.05 1.add temp fix for customer 2.don't update system buf lut when break from part mode 3.don't set osd buf status when osd buf is full win 4.overlay + regal support regaltype 5 5.organize overlay-related code Change-Id: I19fdf58377ec8774dc31d7d4cdd978dca63200e1 Signed-off-by: Zorro Liu --- .../gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S | 10247 +++++++++------- .../rockchip/ebc-dev/epdlut/pvi_waveform_v8.S | 645 +- .../rockchip/ebc-dev/epdlut/rkf_waveform_v8.S | 350 +- .../gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.c | 11 + .../gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.h | 4 + 5 files changed, 6237 insertions(+), 5020 deletions(-) diff --git a/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S b/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S index 362a4072ed2c..fca76066f5a4 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S +++ b/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S @@ -9,7 +9,7 @@ .file "ebc_dev_y8.c" .section .initcall6s.init,"a",@progbits -__initcall__kmod_rkebc__465_4874_ebc_init6s: +__initcall__kmod_rkebc__466_4791_ebc_init6s: .Ltmp0: .word ebc_init-.Ltmp0 .text @@ -20,734 +20,1096 @@ __initcall__kmod_rkebc__465_4874_ebc_init6s: .p2align 2 .type refresh_new_image,@function refresh_new_image: + sub sp, sp, #160 str x30, [x18], #8 - stp x29, x30, [sp, #-96]! + ldr x8, [x6, #216] + mov x13, #-249 + mov x14, #-256 + mov x15, #-63489 + mov x16, #-65281 + stp x29, x30, [sp, #64] + ldr w10, [x8, #40] + mov x30, x1 ldp w9, w8, [x6, #80] - stp x28, x27, [sp, #16] - stp x26, x25, [sp, #32] - stp x24, x23, [sp, #48] - add w10, w8, #7 + mov x17, #-16252929 + mov x1, #-16711681 + sub w10, w10, #2 + mov x6, #-4160749569 + cmp w10, #10 + stp x28, x27, [sp, #80] + add w12, w8, #7 + cset w11, lo cmp w8, #0 - csel w11, w10, w8, lt + stp x26, x25, [sp, #96] + csel w12, w12, w8, lt + tst w7, #0x1 + csel x13, x14, x13, ne + csel x14, x1, x17, ne + stp x24, x23, [sp, #112] + stp x22, x21, [sp, #128] + str x13, [sp, #48] + csel x13, x16, x15, ne + mov x15, #-272678883688449 + mov x16, #-280375465082881 + stp x20, x19, [sp, #144] + str x13, [sp, #40] + mov x13, #-4278190081 + csel x13, x13, x6, ne + stp x13, x14, [sp, #24] + mov x13, #-1065151889409 + mov x14, #-1095216660481 + csel x13, x14, x13, ne + mov x14, #-71776119061217281 + str x13, [sp, #16] + csel x13, x16, x15, ne + mov x15, #576460752303423487 + mov x16, #72057594037927935 + str x13, [sp, #8] + mov x13, #-69805794224242689 + csel x13, x14, x13, ne + str x13, [sp] + csel x13, x16, x15, ne cmp w9, #1 - stp x22, x21, [sp, #64] - stp x20, x19, [sp, #80] - b.lt .LBB0_186 - asr w6, w11, #3 - mov w10, wzr - sub w11, w6, #1 - mov w12, #-268435456 - mov x13, #1030792151040 - add x14, x11, #1 - mov x15, #263882790666240 - mov x16, #67553994410557440 - mov x17, #-2305843009213693952 - mov x24, #63050394783186944 - mov x26, #65302194596872192 - mov w28, #-402653184 - mov w25, #59392 + str x13, [sp, #56] + b.lt .LBB0_343 + asr w29, w12, #3 + and w21, w7, w11 + sub w11, w29, #1 + mov w19, wzr + mov w22, #-268435456 + add x23, x11, #1 + mov x24, #1030792151040 + mov x25, #263882790666240 + mov x26, #67553994410557440 + mov x27, #-1152921504606846976 + mov x16, #-2305843009213693952 b .LBB0_4 .LBB0_2: - add x1, x1, x14, lsl #3 - add x0, x0, x30 - add x5, x5, x30 - add x4, x4, x30 - add x3, x3, x30 - add x2, x2, x30 + add x30, x30, x23, lsl #3 .LBB0_3: - add w10, w10, #1 - cmp w10, w9 - b.eq .LBB0_186 + add w19, w19, #1 + cmp w19, w9 + b.eq .LBB0_343 .LBB0_4: cmp w8, #8 b.lt .LBB0_3 - mov x30, xzr - mov w11, w6 + mov w20, w29 + mov x1, x30 + b .LBB0_7 .LBB0_6: - ldr x29, [x4, x30] - ldr x27, [x2, x30] - ldr x20, [x0, x30] - ldr x7, [x3, x30] - cbnz x29, .LBB0_25 - and x22, x27, #0xf0 - cmp w22, #240 - b.ne .LBB0_90 - mvn w19, w7 - mov w21, #248 - tst x19, #0xf0 - cset w19, eq -.LBB0_9: - and x22, x27, #0xf000 - cmp w22, #15, lsl #12 - b.ne .LBB0_92 - mvn w22, w7 - orr x23, x19, #0x100 - tst x22, #0xf000 - orr x21, x21, #0xf800 - csel x19, x23, x19, eq -.LBB0_11: - and x22, x27, #0xf00000 - cmp x22, #3840, lsl #12 - b.ne .LBB0_94 - mvn w22, w7 - orr x23, x19, #0x10000 - tst x22, #0xf00000 - orr x21, x21, #0xf80000 - csel x19, x23, x19, eq + subs w20, w20, #1 + str x11, [x5], #8 + str x14, [x0], #8 + str x13, [x4], #8 + b.eq .LBB0_2 +.LBB0_7: + ldr x13, [x4] + ldr x12, [x2], #8 + ldr x14, [x0] + ldr x15, [x1], #8 + ldr x28, [x3] + cbnz x13, .LBB0_81 + and x13, x12, #0xf0 + cmp w13, #240 + b.ne .LBB0_91 + and x15, x28, #0xf8 + and x13, x14, #0xffffffffffffff00 + mvn w11, w28 + tst x11, #0xf0 + b.eq .LBB0_13 + cbz x15, .LBB0_13 + mov x11, xzr + cbz w21, .LBB0_15 + orr x13, x15, x13 + b .LBB0_18 .LBB0_13: - and x22, x27, #0xf0000000 - cmp w22, w12 - b.ne .LBB0_96 - mvn w22, w7 - orr x23, x19, #0x1000000 - tst x22, #0xf0000000 - orr x21, x21, #0xf8000000 - csel x19, x23, x19, eq + and x14, x28, #0xff + tbz w7, #0, .LBB0_16 + cmp w10, #10 + csel x11, x15, x14, lo + orr x13, x11, x13 + mov w11, #1 + b .LBB0_18 .LBB0_15: - and x22, x27, #0xf000000000 - cmp x22, x13 - b.ne .LBB0_98 - orr x22, x19, #0x100000000 - bics xzr, x13, x7 - orr x21, x21, #0xf800000000 - csel x19, x22, x19, eq + and x14, x28, #0xff + b .LBB0_17 +.LBB0_16: + mov x11, xzr .LBB0_17: - and x22, x27, #0xf00000000000 - cmp x22, x15 - b.ne .LBB0_100 - orr x22, x19, #0x10000000000 - bics xzr, x15, x7 - orr x21, x21, #0xf80000000000 - csel x19, x22, x19, eq -.LBB0_19: - and x22, x27, #0xf0000000000000 - cmp x22, x16 - b.ne .LBB0_102 - orr x22, x19, #0x1000000000000 - bics xzr, x16, x7 - orr x21, x21, #0xf8000000000000 - csel x19, x22, x19, eq -.LBB0_21: - lsr x22, x27, #60 - cmp x22, #15 - b.lo .LBB0_104 - mov x29, xzr + orr x13, x14, x13 +.LBB0_18: + and x14, x12, #0xf000 + cmp w14, #15, lsl #12 + b.ne .LBB0_94 + and x14, x28, #0xf800 + and x13, x13, #0xffffffffffff00ff + mvn w15, w28 + tst x15, #0xf000 + b.eq .LBB0_24 + cbz x14, .LBB0_24 + cbnz w21, .LBB0_23 + and x14, x28, #0xff00 .LBB0_23: - lsr x22, x7, #59 - orr x23, x19, #0x100000000000000 - cmp x22, #29 - orr x21, x21, #0xf800000000000000 - csel x19, x23, x19, hi + orr x13, x13, x14 + b .LBB0_27 .LBB0_24: - bic x20, x20, x21 - and x7, x21, x7 - orr x7, x20, x7 - str x19, [x5, x30] - subs w11, w11, #1 - str x7, [x0, x30] - str x29, [x4, x30] - add x30, x30, #8 - b.ne .LBB0_6 - b .LBB0_2 -.LBB0_25: - ldr x19, [x5, x30] - tst x29, #0xff - ldr x22, [x1, x30] - b.eq .LBB0_32 - mvn w21, w22 - mov w24, #232 - tst x21, #0xf0 - cset w23, ne - tst x21, x24 - cset w21, ne - and w21, w23, w21 - and x23, x27, #0xff - tbnz w21, #0, .LBB0_29 - and x21, x20, #0xf0 - cmp x21, #240 - b.ne .LBB0_29 - cbz x23, .LBB0_32 -.LBB0_29: - mov x21, xzr - tst x22, #0xff - b.ne .LBB0_34 - mov w24, #232 - and x24, x20, x24 - cmp x24, #232 - b.ne .LBB0_34 - cmp x23, #240 - b.ne .LBB0_34 + and x15, x28, #0xff00 + tbz w7, #0, .LBB0_26 + cmp w10, #10 + orr x11, x11, #0x100 + csel x14, x14, x15, lo + orr x13, x13, x14 + b .LBB0_27 +.LBB0_26: + orr x13, x13, x15 +.LBB0_27: + and x14, x12, #0xf00000 + cmp x14, #3840, lsl #12 + b.ne .LBB0_97 + and x14, x28, #0xf80000 + and x13, x13, #0xffffffffff00ffff + mvn w15, w28 + tst x15, #0xf00000 + b.eq .LBB0_33 + cbz x14, .LBB0_33 + cbnz w21, .LBB0_32 + and x14, x28, #0xff0000 .LBB0_32: - and x19, x19, #0xffffffffffffff00 - and x29, x29, #0xffffffffffffff00 - and x23, x27, #0xf0 - cmp w23, #240 - b.ne .LBB0_131 - mvn w21, w7 - tst x21, #0xf0 - cset w21, eq - orr x19, x19, x21 - mov w21, #248 -.LBB0_34: - tst x29, #0xff00 - b.eq .LBB0_41 + orr x13, x13, x14 + b .LBB0_36 +.LBB0_33: + and x15, x28, #0xff0000 + tbz w7, #0, .LBB0_35 + cmp w10, #10 + orr x11, x11, #0x10000 + csel x14, x14, x15, lo + orr x13, x13, x14 + b .LBB0_36 .LBB0_35: - mvn w23, w22 - tst x23, #0xf000 - cset w24, ne - tst x23, x25 - cset w23, ne - and w24, w24, w23 - and x23, x27, #0xff00 - tbnz w24, #0, .LBB0_38 - and x24, x20, #0xf000 - cmp x24, #15, lsl #12 - b.ne .LBB0_38 - cbz x23, .LBB0_41 -.LBB0_38: - tst x22, #0xff00 - b.ne .LBB0_43 - and x24, x20, x25 - cmp x24, x25 - b.ne .LBB0_43 - cmp x23, #15, lsl #12 - b.ne .LBB0_43 + orr x13, x13, x15 +.LBB0_36: + and x14, x12, #0xf0000000 + cmp w14, w22 + b.ne .LBB0_100 + and x14, x28, #0xf8000000 + and x13, x13, #0xffffffff00ffffff + mvn w15, w28 + tst x15, #0xf0000000 + b.eq .LBB0_42 + cbz x14, .LBB0_42 + cbnz w21, .LBB0_41 + and x14, x28, #0xff000000 .LBB0_41: - and x19, x19, #0xffffffffffff00ff - and x29, x29, #0xffffffffffff00ff - and x23, x27, #0xf000 - cmp w23, #15, lsl #12 - b.ne .LBB0_133 - mvn w23, w7 - orr x24, x19, #0x100 - tst x23, #0xf000 - orr x21, x21, #0xf800 - csel x19, x24, x19, eq -.LBB0_43: - tst x29, #0xff0000 - b.eq .LBB0_50 + orr x13, x13, x14 + b .LBB0_45 +.LBB0_42: + and x15, x28, #0xff000000 + tbz w7, #0, .LBB0_44 + cmp w10, #10 + orr x11, x11, #0x1000000 + csel x14, x14, x15, lo + orr x13, x13, x14 + b .LBB0_45 .LBB0_44: - mvn w23, w22 - mov w25, #15204352 - tst x23, #0xf00000 - cset w24, ne - tst x23, x25 - cset w23, ne - mov w25, #59392 - and w24, w24, w23 - and x23, x27, #0xff0000 - tbnz w24, #0, .LBB0_47 - and x24, x20, #0xf00000 - cmp x24, #3840, lsl #12 - b.ne .LBB0_47 - cbz x23, .LBB0_50 -.LBB0_47: - tst x22, #0xff0000 - b.ne .LBB0_52 - mov w24, #15204352 - and x24, x20, x24 - cmp x24, #3712, lsl #12 - b.ne .LBB0_52 - cmp x23, #3840, lsl #12 - b.ne .LBB0_52 + orr x13, x13, x15 +.LBB0_45: + and x14, x12, #0xf000000000 + cmp x14, x24 + b.ne .LBB0_103 + and x14, x28, #0xf800000000 + and x13, x13, #0xffffff00ffffffff + mvn x15, x28 + tst x15, #0xf000000000 + b.eq .LBB0_51 + cbz x14, .LBB0_51 + cbnz w21, .LBB0_50 + and x14, x28, #0xff00000000 .LBB0_50: - and x19, x19, #0xffffffffff00ffff - and x29, x29, #0xffffffffff00ffff - and x23, x27, #0xf00000 - cmp x23, #3840, lsl #12 - b.ne .LBB0_137 - mvn w23, w7 - orr x24, x19, #0x10000 - tst x23, #0xf00000 - orr x21, x21, #0xf80000 - csel x19, x24, x19, eq -.LBB0_52: - tst x29, #0xff000000 - b.eq .LBB0_59 + orr x13, x13, x14 + b .LBB0_54 +.LBB0_51: + and x15, x28, #0xff00000000 + tbz w7, #0, .LBB0_53 + cmp w10, #10 + orr x11, x11, #0x100000000 + csel x14, x14, x15, lo + orr x13, x13, x14 + b .LBB0_54 .LBB0_53: - mvn w23, w22 - tst x23, #0xf0000000 - cset w24, ne - tst x23, x28 - cset w23, ne - and w24, w24, w23 - and x23, x27, #0xff000000 - tbnz w24, #0, .LBB0_56 - and x24, x20, #0xf0000000 - cmp x24, x12 - b.ne .LBB0_56 - cbz x23, .LBB0_59 -.LBB0_56: - tst x22, #0xff000000 - b.ne .LBB0_61 - and x24, x20, x28 - cmp x24, x28 - b.ne .LBB0_61 - cmp x23, x12 - b.ne .LBB0_61 + orr x13, x13, x15 +.LBB0_54: + and x14, x12, #0xf00000000000 + cmp x14, x25 + b.ne .LBB0_106 + and x14, x28, #0xf80000000000 + and x13, x13, #0xffff00ffffffffff + mvn x15, x28 + tst x15, #0xf00000000000 + b.eq .LBB0_60 + cbz x14, .LBB0_60 + cbnz w21, .LBB0_59 + and x14, x28, #0xff0000000000 .LBB0_59: - and x19, x19, #0xffffffff00ffffff - and x29, x29, #0xffffffff00ffffff - and x23, x27, #0xf0000000 - cmp w23, w12 - b.ne .LBB0_141 - mvn w23, w7 - orr x24, x19, #0x1000000 - tst x23, #0xf0000000 - orr x21, x21, #0xf8000000 - csel x19, x24, x19, eq -.LBB0_61: - tst x29, #0xff00000000 - b.eq .LBB0_68 + orr x13, x13, x14 + b .LBB0_63 +.LBB0_60: + and x15, x28, #0xff0000000000 + tbz w7, #0, .LBB0_62 + cmp w10, #10 + orr x11, x11, #0x10000000000 + csel x14, x14, x15, lo + orr x13, x13, x14 + b .LBB0_63 .LBB0_62: - bics xzr, x13, x22 - mov x24, #996432412672 - cset w23, ne - bics xzr, x24, x22 - cset w24, ne - and w24, w23, w24 - and x23, x27, #0xff00000000 - tbnz w24, #0, .LBB0_65 - and x24, x20, #0xf000000000 - cmp x24, x13 - b.ne .LBB0_65 - cbz x23, .LBB0_68 -.LBB0_65: - tst x22, #0xff00000000 - b.ne .LBB0_70 - mov x28, #996432412672 - and x24, x20, x28 - cmp x24, x28 - b.ne .LBB0_129 - mov w28, #-402653184 - cmp x23, x13 - b.ne .LBB0_70 + orr x13, x13, x15 +.LBB0_63: + and x14, x12, #0xf0000000000000 + cmp x14, x26 + b.ne .LBB0_109 + and x14, x28, #0xf8000000000000 + and x13, x13, #0xff00ffffffffffff + mvn x15, x28 + tst x15, #0xf0000000000000 + b.eq .LBB0_69 + cbz x14, .LBB0_69 + cbnz w21, .LBB0_68 + and x14, x28, #0xff000000000000 .LBB0_68: - and x19, x19, #0xffffff00ffffffff - and x29, x29, #0xffffff00ffffffff - and x23, x27, #0xf000000000 - cmp x23, x13 - b.ne .LBB0_143 - orr x23, x19, #0x100000000 - bics xzr, x13, x7 - orr x21, x21, #0xf800000000 - csel x19, x23, x19, eq -.LBB0_70: - tst x29, #0xff0000000000 - b.eq .LBB0_77 - bics xzr, x15, x22 - mov x24, #255086697644032 - cset w23, ne - bics xzr, x24, x22 - cset w24, ne - and w24, w23, w24 - and x23, x27, #0xff0000000000 - tbnz w24, #0, .LBB0_74 - and x24, x20, #0xf00000000000 - cmp x24, x15 - b.ne .LBB0_74 - cbz x23, .LBB0_77 -.LBB0_74: - tst x22, #0xff0000000000 + orr x15, x13, x14 + b .LBB0_72 +.LBB0_69: + and x15, x28, #0xff000000000000 + tbz w7, #0, .LBB0_71 + cmp w10, #10 + orr x11, x11, #0x1000000000000 + csel x14, x14, x15, lo + orr x15, x13, x14 + b .LBB0_72 +.LBB0_71: + orr x15, x13, x15 +.LBB0_72: + lsr x13, x12, #60 + cmp x13, #15 + b.lo .LBB0_112 + and x14, x28, #0xf800000000000000 + and x12, x15, #0xffffffffffffff + lsr x13, x28, #59 + cmp x13, #30 + b.hi .LBB0_76 + cbz x14, .LBB0_76 + cmp x14, x27 b.ne .LBB0_79 - mov x17, #255086697644032 - and x24, x20, x17 - cmp x24, x17 - b.ne .LBB0_130 - mov x17, #-2305843009213693952 - cmp x23, x15 - b.ne .LBB0_79 -.LBB0_77: - and x19, x19, #0xffff00ffffffffff - and x29, x29, #0xffff00ffffffffff - and x23, x27, #0xf00000000000 - cmp x23, x15 - b.ne .LBB0_145 - orr x23, x19, #0x10000000000 - bics xzr, x15, x7 - orr x21, x21, #0xf80000000000 - csel x19, x23, x19, eq +.LBB0_76: + and x15, x28, #0xff00000000000000 + mov x13, xzr + tbz w7, #0, .LBB0_270 + cmp w10, #10 + csel x14, x14, x15, lo +.LBB0_78: + orr x14, x12, x14 + orr x11, x11, #0x100000000000000 + b .LBB0_271 .LBB0_79: - tst x29, #0xff000000000000 + mov x13, xzr + cbz w21, .LBB0_273 +.LBB0_80: + orr x14, x12, x14 + b .LBB0_271 +.LBB0_81: + ldr x11, [x5] + tst x13, #0xff b.eq .LBB0_86 - bics xzr, x16, x22 - cset w23, ne - bics xzr, x26, x22 - cset w24, ne - and w24, w23, w24 - and x23, x27, #0xff000000000000 - tbnz w24, #0, .LBB0_83 - and x24, x20, #0xf0000000000000 - cmp x24, x16 - b.ne .LBB0_83 - cbz x23, .LBB0_86 -.LBB0_83: - tst x22, #0xff000000000000 - b.ne .LBB0_88 - and x24, x20, x26 - cmp x24, x26 - b.ne .LBB0_88 - cmp x23, x16 - b.ne .LBB0_88 -.LBB0_86: - and x19, x19, #0xff00ffffffffffff - and x29, x29, #0xff00ffffffffffff - and x23, x27, #0xf0000000000000 - cmp x23, x16 - b.ne .LBB0_147 - orr x23, x19, #0x1000000000000 - bics xzr, x16, x7 - orr x21, x21, #0xf8000000000000 - csel x19, x23, x19, eq -.LBB0_88: - lsr x23, x29, #56 - cbnz x23, .LBB0_173 -.LBB0_89: - and x19, x19, #0xffffffffffffff - mov x24, #63050394783186944 - lsr x22, x27, #60 - cmp x22, #15 - b.hs .LBB0_23 - b .LBB0_177 -.LBB0_90: - cbnz w22, .LBB0_107 - mov x21, xzr - and x20, x20, #0xffffffffffffff00 - mov w19, #1 - b .LBB0_9 -.LBB0_92: - and x20, x20, #0xffffffffffff00ff - cbnz w22, .LBB0_109 - orr x19, x19, #0x100 - b .LBB0_11 -.LBB0_94: - and x20, x20, #0xffffffffff00ffff - cbnz x22, .LBB0_111 - orr x19, x19, #0x10000 - b .LBB0_13 -.LBB0_96: - cbnz w22, .LBB0_113 - and x20, x20, #0xffffffff00ffffff - orr x19, x19, #0x1000000 - b .LBB0_15 -.LBB0_98: - cbnz x22, .LBB0_115 - and x20, x20, #0xffffff00ffffffff - orr x19, x19, #0x100000000 - b .LBB0_17 -.LBB0_100: - cbnz x22, .LBB0_117 - and x20, x20, #0xffff00ffffffffff - orr x19, x19, #0x10000000000 - b .LBB0_19 -.LBB0_102: - and x20, x20, #0xff00ffffffffffff - cbnz x22, .LBB0_119 - orr x19, x19, #0x1000000000000 - b .LBB0_21 -.LBB0_104: - and x22, x27, #0xf000000000000000 - cmp x22, x17 - b.eq .LBB0_121 - mov x29, xzr - cbz x22, .LBB0_179 -.LBB0_106: - and x20, x20, #0xffffffffffffff - orr x20, x20, x22 - b .LBB0_24 -.LBB0_107: - cmp w22, #224 - b.ne .LBB0_122 - and x19, x20, #0xffffffffffffff00 - mov x21, xzr - orr x20, x19, #0xf0 - mov w19, #1 - b .LBB0_9 -.LBB0_109: - cmp w22, #14, lsl #12 - b.ne .LBB0_123 - orr x20, x20, #0xf000 - orr x19, x19, #0x100 - b .LBB0_11 -.LBB0_111: - cmp x22, #3584, lsl #12 - b.ne .LBB0_124 - orr x20, x20, #0xf00000 - orr x19, x19, #0x10000 - b .LBB0_13 -.LBB0_113: - and x20, x20, #0xffffffff00ffffff - mov w23, #-536870912 - cmp w22, w23 - b.ne .LBB0_125 - orr x20, x20, #0xf0000000 - orr x19, x19, #0x1000000 - b .LBB0_15 -.LBB0_115: - and x20, x20, #0xffffff00ffffffff - mov x23, #962072674304 - cmp x22, x23 - b.ne .LBB0_126 - orr x20, x20, #0xf000000000 - orr x19, x19, #0x100000000 - b .LBB0_17 -.LBB0_117: - and x20, x20, #0xffff00ffffffffff - mov x23, #246290604621824 - cmp x22, x23 - b.ne .LBB0_127 - orr x20, x20, #0xf00000000000 - orr x19, x19, #0x10000000000 - b .LBB0_19 -.LBB0_119: - cmp x22, x24 - b.ne .LBB0_128 - orr x20, x20, #0xf0000000000000 - orr x19, x19, #0x1000000000000 - b .LBB0_21 -.LBB0_121: - mov x29, xzr - b .LBB0_180 -.LBB0_122: - and x20, x20, #0xffffffffffffff00 - mov x19, xzr - mov x21, xzr - orr x20, x20, x22 - b .LBB0_9 -.LBB0_123: - orr x20, x20, x22 - b .LBB0_11 -.LBB0_124: - orr x20, x20, x22 - b .LBB0_13 -.LBB0_125: - orr x20, x20, x22 - b .LBB0_15 -.LBB0_126: - orr x20, x20, x22 - b .LBB0_17 -.LBB0_127: - orr x20, x20, x22 - b .LBB0_19 -.LBB0_128: - orr x20, x20, x22 - b .LBB0_21 -.LBB0_129: - mov w28, #-402653184 - b .LBB0_70 -.LBB0_130: - mov x17, #-2305843009213693952 - b .LBB0_79 -.LBB0_131: - cbnz w23, .LBB0_149 - mov x21, xzr - and x20, x20, #0xffffffffffffff00 - orr x19, x19, #0x1 - b .LBB0_164 -.LBB0_133: - and x20, x20, #0xffffffffffff00ff - cbz w23, .LBB0_136 - cmp w23, #14, lsl #12 - b.ne .LBB0_159 - orr x20, x20, #0xf000 -.LBB0_136: - orr x19, x19, #0x100 - b .LBB0_160 -.LBB0_137: - and x20, x20, #0xffffffffff00ffff - cbz x23, .LBB0_140 - cmp x23, #3584, lsl #12 + tbz w7, #0, .LBB0_161 + mvn w16, w15 + mov w6, #232 + tst x16, #0xf0 + cset w17, ne + tst x16, x6 + cset w16, ne + and w16, w17, w16 + tbnz w16, #0, .LBB0_161 + and x16, x14, #0xf0 + cmp x16, #240 b.ne .LBB0_161 - orr x20, x20, #0xf00000 + and x16, x12, #0xff + cbnz x16, .LBB0_161 +.LBB0_86: + and x11, x11, #0xffffffffffffff00 + and x13, x13, #0xffffffffffffff00 + and x16, x12, #0xf0 + cmp w16, #240 + b.ne .LBB0_279 + and x16, x28, #0xf8 + and x14, x14, #0xffffffffffffff00 + mvn w17, w28 + tst x17, #0xf0 + b.eq .LBB0_141 + cbz x16, .LBB0_141 + cbz w21, .LBB0_159 + orr x14, x16, x14 + b .LBB0_161 +.LBB0_91: + cbnz w13, .LBB0_116 + tbz w7, #0, .LBB0_143 + and x13, x14, #0xffffffffffffff00 + mov w11, #1 + b .LBB0_18 +.LBB0_94: + cbnz w14, .LBB0_119 + tbz w7, #0, .LBB0_144 + and x13, x13, #0xffffffffffff00ff + orr x11, x11, #0x100 + b .LBB0_27 +.LBB0_97: + cbnz x14, .LBB0_122 + tbz w7, #0, .LBB0_145 + and x13, x13, #0xffffffffff00ffff + orr x11, x11, #0x10000 + b .LBB0_36 +.LBB0_100: + cbnz w14, .LBB0_125 + tbz w7, #0, .LBB0_146 + and x13, x13, #0xffffffff00ffffff + orr x11, x11, #0x1000000 + b .LBB0_45 +.LBB0_103: + cbnz x14, .LBB0_128 + tbz w7, #0, .LBB0_147 + and x13, x13, #0xffffff00ffffffff + orr x11, x11, #0x100000000 + b .LBB0_54 +.LBB0_106: + cbnz x14, .LBB0_131 + tbz w7, #0, .LBB0_148 + and x13, x13, #0xffff00ffffffffff + orr x11, x11, #0x10000000000 + b .LBB0_63 +.LBB0_109: + cbnz x14, .LBB0_134 + tbz w7, #0, .LBB0_149 + and x15, x13, #0xff00ffffffffffff + orr x11, x11, #0x1000000000000 + b .LBB0_72 +.LBB0_112: + and x12, x12, #0xf000000000000000 + cmp x12, x16 + b.eq .LBB0_137 + mov x13, xzr + cbnz x12, .LBB0_139 + tbz w7, #0, .LBB0_157 + and x14, x15, #0xffffffffffffff + orr x11, x11, #0x100000000000000 + b .LBB0_271 +.LBB0_116: + cmp w13, #224 + b.ne .LBB0_150 + tbz w7, #0, .LBB0_262 + and x11, x14, #0xffffffffffffff00 + orr x13, x11, #0xf0 + mov w11, #1 + b .LBB0_18 +.LBB0_119: + cmp w14, #14, lsl #12 + b.ne .LBB0_151 + tbz w7, #0, .LBB0_263 + and x13, x13, #0xffffffffffff00ff + orr x11, x11, #0x100 + orr x13, x13, #0xf000 + b .LBB0_27 +.LBB0_122: + cmp x14, #3584, lsl #12 + b.ne .LBB0_152 + tbz w7, #0, .LBB0_264 + and x13, x13, #0xffffffffff00ffff + orr x11, x11, #0x10000 + orr x13, x13, #0xf00000 + b .LBB0_36 +.LBB0_125: + mov w15, #-536870912 + cmp w14, w15 + b.ne .LBB0_153 + tbz w7, #0, .LBB0_265 + and x13, x13, #0xffffffff00ffffff + orr x11, x11, #0x1000000 + orr x13, x13, #0xf0000000 + b .LBB0_45 +.LBB0_128: + mov x15, #962072674304 + cmp x14, x15 + b.ne .LBB0_154 + tbz w7, #0, .LBB0_266 + and x13, x13, #0xffffff00ffffffff + orr x11, x11, #0x100000000 + orr x13, x13, #0xf000000000 + b .LBB0_54 +.LBB0_131: + mov x15, #246290604621824 + cmp x14, x15 + b.ne .LBB0_155 + tbz w7, #0, .LBB0_267 + and x13, x13, #0xffff00ffffffffff + orr x11, x11, #0x10000000000 + orr x13, x13, #0xf00000000000 + b .LBB0_63 +.LBB0_134: + mov x15, #63050394783186944 + cmp x14, x15 + b.ne .LBB0_156 + tbz w7, #0, .LBB0_268 + and x13, x13, #0xff00ffffffffffff + orr x11, x11, #0x1000000000000 + orr x15, x13, #0xf0000000000000 + b .LBB0_72 +.LBB0_137: + mov x13, xzr + mov x14, #-1152921504606846976 + tbz w7, #0, .LBB0_158 + bfxil x14, x15, #0, #56 + orr x11, x11, #0x100000000000000 + b .LBB0_271 +.LBB0_139: + ldr x14, [sp, #56] + and x14, x15, x14 .LBB0_140: - orr x19, x19, #0x10000 - b .LBB0_162 + orr x14, x14, x12 + b .LBB0_271 .LBB0_141: - cbnz w23, .LBB0_151 - and x20, x20, #0xffffffff00ffffff - orr x19, x19, #0x1000000 - b .LBB0_166 + and x17, x28, #0xff + tbz w7, #0, .LBB0_160 + cmp w10, #10 + orr x11, x11, #0x1 + csel x16, x16, x17, lo + orr x14, x16, x14 + b .LBB0_161 .LBB0_143: - cbnz x23, .LBB0_153 - and x20, x20, #0xffffff00ffffffff - orr x19, x19, #0x100000000 - b .LBB0_168 + mov x11, xzr + and x13, x14, #0xffffffffffffff07 + b .LBB0_18 +.LBB0_144: + and x13, x13, #0xffffffffffff07ff + b .LBB0_27 .LBB0_145: - cbnz x23, .LBB0_155 - and x20, x20, #0xffff00ffffffffff - orr x19, x19, #0x10000000000 - b .LBB0_170 + and x13, x13, #0xffffffffff07ffff + b .LBB0_36 +.LBB0_146: + and x13, x13, #0xffffffff07ffffff + b .LBB0_45 .LBB0_147: - cbnz x23, .LBB0_157 - and x20, x20, #0xff00ffffffffffff - orr x19, x19, #0x1000000000000 - b .LBB0_172 + and x13, x13, #0xffffff07ffffffff + b .LBB0_54 +.LBB0_148: + and x13, x13, #0xffff07ffffffffff + b .LBB0_63 .LBB0_149: - cmp w23, #224 - b.ne .LBB0_163 - and x20, x20, #0xffffffffffffff00 - mov x21, xzr - orr x20, x20, #0xf0 - orr x19, x19, #0x1 - b .LBB0_164 + and x15, x13, #0xff07ffffffffffff + b .LBB0_72 +.LBB0_150: + ldr x15, [sp, #48] + mov x11, xzr + and x14, x14, x15 + b .LBB0_17 .LBB0_151: - and x20, x20, #0xffffffff00ffffff - mov w24, #-536870912 - cmp w23, w24 - b.ne .LBB0_165 - orr x20, x20, #0xf0000000 - orr x19, x19, #0x1000000 - b .LBB0_166 -.LBB0_153: - and x20, x20, #0xffffff00ffffffff - mov x24, #962072674304 - cmp x23, x24 - b.ne .LBB0_167 - orr x20, x20, #0xf000000000 - orr x19, x19, #0x100000000 - b .LBB0_168 -.LBB0_155: - and x20, x20, #0xffff00ffffffffff - mov x24, #246290604621824 - cmp x23, x24 - b.ne .LBB0_169 - orr x20, x20, #0xf00000000000 - orr x19, x19, #0x10000000000 - b .LBB0_170 -.LBB0_157: - and x20, x20, #0xff00ffffffffffff - mov x24, #63050394783186944 - cmp x23, x24 - b.ne .LBB0_171 - orr x20, x20, #0xf0000000000000 - orr x19, x19, #0x1000000000000 - b .LBB0_172 -.LBB0_159: - orr x20, x20, x23 -.LBB0_160: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - tst x29, #0xff0000 - b.ne .LBB0_44 - b .LBB0_50 -.LBB0_161: - orr x20, x20, x23 -.LBB0_162: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - tst x29, #0xff000000 - b.ne .LBB0_53 - b .LBB0_59 -.LBB0_163: - and x20, x20, #0xffffffffffffff00 - mov x21, xzr - orr x20, x20, x23 -.LBB0_164: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - tst x29, #0xff00 - b.ne .LBB0_35 - b .LBB0_41 -.LBB0_165: - orr x20, x20, x23 -.LBB0_166: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - tst x29, #0xff00000000 - b.ne .LBB0_62 - b .LBB0_68 -.LBB0_167: - orr x20, x20, x23 -.LBB0_168: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - b .LBB0_70 -.LBB0_169: - orr x20, x20, x23 -.LBB0_170: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - b .LBB0_79 -.LBB0_171: - orr x20, x20, x23 -.LBB0_172: - mov x26, #65302194596872192 - mov x17, #-2305843009213693952 - mov w28, #-402653184 - mov w25, #59392 - lsr x23, x29, #56 - cbz x23, .LBB0_89 -.LBB0_173: - lsr x23, x22, #60 - mov x24, #-1729382256910270464 - cmp x23, #15 - cset w23, lo - bics xzr, x24, x22 - cset w24, ne - and w23, w23, w24 - tbnz w23, #0, .LBB0_181 - lsr x23, x20, #60 - cmp x23, #15 - b.lo .LBB0_181 - lsr x23, x27, #56 - cbnz x23, .LBB0_181 - and x19, x19, #0xffffffffffffff - and x29, x29, #0xffffffffffffff - mov x24, #63050394783186944 -.LBB0_177: - and x22, x27, #0xf000000000000000 - cmp x22, x17 - b.eq .LBB0_180 - cbnz x22, .LBB0_106 -.LBB0_179: - and x20, x20, #0xffffffffffffff - orr x19, x19, #0x100000000000000 - b .LBB0_24 -.LBB0_180: - mov x22, #-1152921504606846976 - orr x19, x19, #0x100000000000000 - bfxil x22, x20, #0, #56 - mov x20, x22 - b .LBB0_24 -.LBB0_181: - lsr x22, x22, #56 - mov x23, #-1152921504606846976 - mov x24, #63050394783186944 - cbnz x22, .LBB0_24 - mov x26, #-1729382256910270464 - and x22, x20, x26 - cmp x22, x26 - b.ne .LBB0_185 - mov x26, #65302194596872192 - and x22, x27, #0xff00000000000000 - cmp x22, x23 - b.ne .LBB0_24 - and x19, x19, #0xffffffffffffff - and x29, x29, #0xffffffffffffff + ldr x15, [sp, #40] + and x13, x13, x15 b .LBB0_23 +.LBB0_152: + ldr x15, [sp, #32] + and x13, x13, x15 + b .LBB0_32 +.LBB0_153: + ldr x15, [sp, #24] + and x13, x13, x15 + b .LBB0_41 +.LBB0_154: + ldr x15, [sp, #16] + and x13, x13, x15 + b .LBB0_50 +.LBB0_155: + ldr x15, [sp, #8] + and x13, x13, x15 + b .LBB0_59 +.LBB0_156: + ldr x15, [sp] + and x13, x13, x15 + b .LBB0_68 +.LBB0_157: + and x14, x15, #0x7ffffffffffffff + b .LBB0_271 +.LBB0_158: + bfxil x14, x15, #0, #59 + b .LBB0_271 +.LBB0_159: + and x16, x28, #0xff + orr x14, x16, x14 + b .LBB0_161 +.LBB0_160: + orr x14, x17, x14 +.LBB0_161: + tst x13, #0xff00 + b.eq .LBB0_166 + tbz w7, #0, .LBB0_175 + mvn w16, w15 + mov w6, #59392 + tst x16, #0xf000 + cset w17, ne + tst x16, x6 + cset w16, ne + and w16, w17, w16 + tbnz w16, #0, .LBB0_175 + and x16, x14, #0xf000 + cmp x16, #15, lsl #12 + b.ne .LBB0_175 + and x16, x12, #0xff00 + cbnz x16, .LBB0_175 +.LBB0_166: + and x11, x11, #0xffffffffffff00ff + and x13, x13, #0xffffffffffff00ff + and x16, x12, #0xf000 + cmp w16, #15, lsl #12 + b.ne .LBB0_282 + and x16, x28, #0xf800 + and x14, x14, #0xffffffffffff00ff + mvn w17, w28 + tst x17, #0xf000 + b.eq .LBB0_172 + cbz x16, .LBB0_172 + cbnz w21, .LBB0_171 + and x16, x28, #0xff00 +.LBB0_171: + orr x14, x14, x16 + b .LBB0_175 +.LBB0_172: + and x17, x28, #0xff00 + tbz w7, #0, .LBB0_174 + cmp w10, #10 + orr x11, x11, #0x100 + csel x16, x16, x17, lo + orr x14, x14, x16 + b .LBB0_175 +.LBB0_174: + orr x14, x14, x17 +.LBB0_175: + tst x13, #0xff0000 + b.eq .LBB0_180 + tbz w7, #0, .LBB0_189 + mvn w16, w15 + mov w6, #15204352 + tst x16, #0xf00000 + cset w17, ne + tst x16, x6 + cset w16, ne + and w16, w17, w16 + tbnz w16, #0, .LBB0_189 + and x16, x14, #0xf00000 + cmp x16, #3840, lsl #12 + b.ne .LBB0_189 + and x16, x12, #0xff0000 + cbnz x16, .LBB0_189 +.LBB0_180: + and x11, x11, #0xffffffffff00ffff + and x13, x13, #0xffffffffff00ffff + and x16, x12, #0xf00000 + cmp x16, #3840, lsl #12 + b.ne .LBB0_285 + and x16, x28, #0xf80000 + and x14, x14, #0xffffffffff00ffff + mvn w17, w28 + tst x17, #0xf00000 + b.eq .LBB0_186 + cbz x16, .LBB0_186 + cbnz w21, .LBB0_185 + and x16, x28, #0xff0000 .LBB0_185: - mov x26, #65302194596872192 - b .LBB0_24 + orr x14, x14, x16 + b .LBB0_189 .LBB0_186: - ldp x20, x19, [sp, #80] - ldp x22, x21, [sp, #64] - ldp x24, x23, [sp, #48] - ldp x26, x25, [sp, #32] - ldp x28, x27, [sp, #16] - ldp x29, x30, [sp], #96 + and x17, x28, #0xff0000 + tbz w7, #0, .LBB0_188 + cmp w10, #10 + orr x11, x11, #0x10000 + csel x16, x16, x17, lo + orr x14, x14, x16 + b .LBB0_189 +.LBB0_188: + orr x14, x14, x17 +.LBB0_189: + tst x13, #0xff000000 + b.eq .LBB0_194 + tbz w7, #0, .LBB0_203 + mvn w16, w15 + mov w6, #-402653184 + tst x16, #0xf0000000 + cset w17, ne + tst x16, x6 + cset w16, ne + and w16, w17, w16 + tbnz w16, #0, .LBB0_203 + and x16, x14, #0xf0000000 + cmp x16, x22 + b.ne .LBB0_203 + and x16, x12, #0xff000000 + cbnz x16, .LBB0_203 +.LBB0_194: + and x11, x11, #0xffffffff00ffffff + and x13, x13, #0xffffffff00ffffff + and x16, x12, #0xf0000000 + cmp w16, w22 + b.ne .LBB0_288 + and x16, x28, #0xf8000000 + and x14, x14, #0xffffffff00ffffff + mvn w17, w28 + tst x17, #0xf0000000 + b.eq .LBB0_200 + cbz x16, .LBB0_200 + cbnz w21, .LBB0_199 + and x16, x28, #0xff000000 +.LBB0_199: + orr x14, x14, x16 + b .LBB0_203 +.LBB0_200: + and x17, x28, #0xff000000 + tbz w7, #0, .LBB0_202 + cmp w10, #10 + orr x11, x11, #0x1000000 + csel x16, x16, x17, lo + orr x14, x14, x16 + b .LBB0_203 +.LBB0_202: + orr x14, x14, x17 +.LBB0_203: + tst x13, #0xff00000000 + b.eq .LBB0_208 + tbz w7, #0, .LBB0_217 + bics xzr, x24, x15 + mov x17, #996432412672 + cset w16, ne + bics xzr, x17, x15 + cset w17, ne + and w16, w16, w17 + tbnz w16, #0, .LBB0_217 + and x16, x14, #0xf000000000 + cmp x16, x24 + b.ne .LBB0_217 + and x16, x12, #0xff00000000 + cbnz x16, .LBB0_217 +.LBB0_208: + and x11, x11, #0xffffff00ffffffff + and x13, x13, #0xffffff00ffffffff + and x16, x12, #0xf000000000 + cmp x16, x24 + b.ne .LBB0_291 + and x16, x28, #0xf800000000 + and x14, x14, #0xffffff00ffffffff + mvn x17, x28 + tst x17, #0xf000000000 + b.eq .LBB0_214 + cbz x16, .LBB0_214 + cbnz w21, .LBB0_213 + and x16, x28, #0xff00000000 +.LBB0_213: + orr x14, x14, x16 + b .LBB0_217 +.LBB0_214: + and x17, x28, #0xff00000000 + tbz w7, #0, .LBB0_216 + cmp w10, #10 + orr x11, x11, #0x100000000 + csel x16, x16, x17, lo + orr x14, x14, x16 + b .LBB0_217 +.LBB0_216: + orr x14, x14, x17 +.LBB0_217: + tst x13, #0xff0000000000 + b.eq .LBB0_222 + tbz w7, #0, .LBB0_231 + bics xzr, x25, x15 + mov x17, #255086697644032 + cset w16, ne + bics xzr, x17, x15 + cset w17, ne + and w16, w16, w17 + tbnz w16, #0, .LBB0_231 + and x16, x14, #0xf00000000000 + cmp x16, x25 + b.ne .LBB0_231 + and x16, x12, #0xff0000000000 + cbnz x16, .LBB0_231 +.LBB0_222: + and x11, x11, #0xffff00ffffffffff + and x13, x13, #0xffff00ffffffffff + and x16, x12, #0xf00000000000 + cmp x16, x25 + b.ne .LBB0_294 + and x16, x28, #0xf80000000000 + and x14, x14, #0xffff00ffffffffff + mvn x17, x28 + tst x17, #0xf00000000000 + b.eq .LBB0_228 + cbz x16, .LBB0_228 + cbnz w21, .LBB0_227 + and x16, x28, #0xff0000000000 +.LBB0_227: + orr x14, x14, x16 + b .LBB0_231 +.LBB0_228: + and x17, x28, #0xff0000000000 + tbz w7, #0, .LBB0_230 + cmp w10, #10 + orr x11, x11, #0x10000000000 + csel x16, x16, x17, lo + orr x14, x14, x16 + b .LBB0_231 +.LBB0_230: + orr x14, x14, x17 +.LBB0_231: + tst x13, #0xff000000000000 + b.eq .LBB0_236 + tbz w7, #0, .LBB0_245 + bics xzr, x26, x15 + mov x17, #65302194596872192 + cset w16, ne + bics xzr, x17, x15 + cset w17, ne + and w16, w16, w17 + tbnz w16, #0, .LBB0_245 + and x16, x14, #0xf0000000000000 + cmp x16, x26 + b.ne .LBB0_245 + and x16, x12, #0xff000000000000 + cbnz x16, .LBB0_245 +.LBB0_236: + and x11, x11, #0xff00ffffffffffff + and x13, x13, #0xff00ffffffffffff + and x16, x12, #0xf0000000000000 + cmp x16, x26 + b.ne .LBB0_297 + and x16, x28, #0xf8000000000000 + and x14, x14, #0xff00ffffffffffff + mvn x17, x28 + tst x17, #0xf0000000000000 + b.eq .LBB0_242 + cbz x16, .LBB0_242 + cbnz w21, .LBB0_241 + and x16, x28, #0xff000000000000 +.LBB0_241: + orr x14, x14, x16 + b .LBB0_245 +.LBB0_242: + and x17, x28, #0xff000000000000 + tbz w7, #0, .LBB0_244 + cmp w10, #10 + orr x11, x11, #0x1000000000000 + csel x16, x16, x17, lo + orr x14, x14, x16 + b .LBB0_245 +.LBB0_244: + orr x14, x14, x17 +.LBB0_245: + lsr x16, x13, #56 + cbnz x16, .LBB0_252 + and x11, x11, #0xffffffffffffff + lsr x15, x12, #60 + cmp x15, #15 + b.lo .LBB0_300 + and x15, x28, #0xf800000000000000 + and x12, x14, #0xffffffffffffff + mov x16, #-2305843009213693952 + lsr x14, x28, #59 + cmp x14, #30 + b.hi .LBB0_250 + cbz x15, .LBB0_250 + cmp x15, x27 + b.ne .LBB0_269 +.LBB0_250: + and x14, x28, #0xff00000000000000 + tbz w7, #0, .LBB0_80 + cmp w10, #10 + csel x14, x15, x14, lo + b .LBB0_78 +.LBB0_252: + tbz w7, #0, .LBB0_261 + lsr x16, x15, #60 + mov x17, #-1729382256910270464 + cmp x16, #15 + cset w16, lo + bics xzr, x17, x15 + cset w15, ne + and w15, w16, w15 + tbnz w15, #0, .LBB0_261 + mov x16, #-2305843009213693952 + lsr x15, x14, #60 + cmp x15, #15 + b.lo .LBB0_271 + lsr x15, x12, #56 + cbnz x15, .LBB0_271 + and x11, x11, #0xffffffffffffff + and x13, x13, #0xffffffffffffff +.LBB0_257: + and x12, x12, #0xf000000000000000 + cmp x12, x16 + b.eq .LBB0_274 + cbnz x12, .LBB0_276 + tbz w7, #0, .LBB0_277 + and x14, x14, #0xffffffffffffff + orr x11, x11, #0x100000000000000 + b .LBB0_271 +.LBB0_261: + mov x16, #-2305843009213693952 + b .LBB0_271 +.LBB0_262: + and x13, x14, #0xffffffffffffff07 + mov x11, xzr + orr x13, x13, #0xf0 + b .LBB0_18 +.LBB0_263: + and x13, x13, #0xffffffffffff07ff + orr x13, x13, #0xf000 + b .LBB0_27 +.LBB0_264: + and x13, x13, #0xffffffffff07ffff + orr x13, x13, #0xf00000 + b .LBB0_36 +.LBB0_265: + and x13, x13, #0xffffffff07ffffff + orr x13, x13, #0xf0000000 + b .LBB0_45 +.LBB0_266: + and x13, x13, #0xffffff07ffffffff + orr x13, x13, #0xf000000000 + b .LBB0_54 +.LBB0_267: + and x13, x13, #0xffff07ffffffffff + orr x13, x13, #0xf00000000000 + b .LBB0_63 +.LBB0_268: + and x13, x13, #0xff07ffffffffffff + orr x15, x13, #0xf0000000000000 + b .LBB0_72 +.LBB0_269: + cbz w21, .LBB0_273 +.LBB0_270: + orr x14, x12, x15 +.LBB0_271: + cmp w10, #9 + b.hi .LBB0_6 + and x12, x28, #0xf8f8f8f8f8f8f8f8 + str x12, [x3], #8 + b .LBB0_6 +.LBB0_273: + and x14, x28, #0xff00000000000000 + orr x14, x12, x14 + b .LBB0_271 +.LBB0_274: + mov x12, #-1152921504606846976 + tbz w7, #0, .LBB0_278 + bfxil x12, x14, #0, #56 + orr x11, x11, #0x100000000000000 + mov x14, x12 + b .LBB0_271 +.LBB0_276: + ldr x15, [sp, #56] + and x14, x14, x15 + b .LBB0_140 +.LBB0_277: + and x14, x14, #0x7ffffffffffffff + b .LBB0_271 +.LBB0_278: + bfxil x12, x14, #0, #59 + mov x14, x12 + b .LBB0_271 +.LBB0_279: + cbnz w16, .LBB0_301 + tbz w7, #0, .LBB0_322 + and x14, x14, #0xffffffffffffff00 + orr x11, x11, #0x1 + b .LBB0_161 +.LBB0_282: + cbnz w16, .LBB0_304 + tbz w7, #0, .LBB0_323 + and x14, x14, #0xffffffffffff00ff + orr x11, x11, #0x100 + b .LBB0_175 +.LBB0_285: + cbnz x16, .LBB0_307 + tbz w7, #0, .LBB0_324 + and x14, x14, #0xffffffffff00ffff + orr x11, x11, #0x10000 + b .LBB0_189 +.LBB0_288: + cbnz w16, .LBB0_310 + tbz w7, #0, .LBB0_325 + and x14, x14, #0xffffffff00ffffff + orr x11, x11, #0x1000000 + b .LBB0_203 +.LBB0_291: + cbnz x16, .LBB0_313 + tbz w7, #0, .LBB0_326 + and x14, x14, #0xffffff00ffffffff + orr x11, x11, #0x100000000 + b .LBB0_217 +.LBB0_294: + cbnz x16, .LBB0_316 + tbz w7, #0, .LBB0_327 + and x14, x14, #0xffff00ffffffffff + orr x11, x11, #0x10000000000 + b .LBB0_231 +.LBB0_297: + cbnz x16, .LBB0_319 + tbz w7, #0, .LBB0_328 + and x14, x14, #0xff00ffffffffffff + orr x11, x11, #0x1000000000000 + b .LBB0_245 +.LBB0_300: + mov x16, #-2305843009213693952 + b .LBB0_257 +.LBB0_301: + cmp w16, #224 + b.ne .LBB0_329 + tbz w7, #0, .LBB0_336 + and x14, x14, #0xffffffffffffff00 + orr x11, x11, #0x1 + orr x14, x14, #0xf0 + b .LBB0_161 +.LBB0_304: + cmp w16, #14, lsl #12 + b.ne .LBB0_330 + tbz w7, #0, .LBB0_337 + and x14, x14, #0xffffffffffff00ff + orr x11, x11, #0x100 + orr x14, x14, #0xf000 + b .LBB0_175 +.LBB0_307: + cmp x16, #3584, lsl #12 + b.ne .LBB0_331 + tbz w7, #0, .LBB0_338 + and x14, x14, #0xffffffffff00ffff + orr x11, x11, #0x10000 + orr x14, x14, #0xf00000 + b .LBB0_189 +.LBB0_310: + mov w17, #-536870912 + cmp w16, w17 + b.ne .LBB0_332 + tbz w7, #0, .LBB0_339 + and x14, x14, #0xffffffff00ffffff + orr x11, x11, #0x1000000 + orr x14, x14, #0xf0000000 + b .LBB0_203 +.LBB0_313: + mov x17, #962072674304 + cmp x16, x17 + b.ne .LBB0_333 + tbz w7, #0, .LBB0_340 + and x14, x14, #0xffffff00ffffffff + orr x11, x11, #0x100000000 + orr x14, x14, #0xf000000000 + b .LBB0_217 +.LBB0_316: + mov x17, #246290604621824 + cmp x16, x17 + b.ne .LBB0_334 + tbz w7, #0, .LBB0_341 + and x14, x14, #0xffff00ffffffffff + orr x11, x11, #0x10000000000 + orr x14, x14, #0xf00000000000 + b .LBB0_231 +.LBB0_319: + mov x17, #63050394783186944 + cmp x16, x17 + b.ne .LBB0_335 + tbz w7, #0, .LBB0_342 + and x14, x14, #0xff00ffffffffffff + orr x11, x11, #0x1000000000000 + orr x14, x14, #0xf0000000000000 + b .LBB0_245 +.LBB0_322: + and x14, x14, #0xffffffffffffff07 + b .LBB0_161 +.LBB0_323: + and x14, x14, #0xffffffffffff07ff + b .LBB0_175 +.LBB0_324: + and x14, x14, #0xffffffffff07ffff + b .LBB0_189 +.LBB0_325: + and x14, x14, #0xffffffff07ffffff + b .LBB0_203 +.LBB0_326: + and x14, x14, #0xffffff07ffffffff + b .LBB0_217 +.LBB0_327: + and x14, x14, #0xffff07ffffffffff + b .LBB0_231 +.LBB0_328: + and x14, x14, #0xff07ffffffffffff + b .LBB0_245 +.LBB0_329: + ldr x17, [sp, #48] + and x14, x14, x17 + orr x14, x14, x16 + b .LBB0_161 +.LBB0_330: + ldr x17, [sp, #40] + and x14, x14, x17 + b .LBB0_171 +.LBB0_331: + ldr x17, [sp, #32] + and x14, x14, x17 + b .LBB0_185 +.LBB0_332: + ldr x17, [sp, #24] + and x14, x14, x17 + b .LBB0_199 +.LBB0_333: + ldr x17, [sp, #16] + and x14, x14, x17 + b .LBB0_213 +.LBB0_334: + ldr x17, [sp, #8] + and x14, x14, x17 + b .LBB0_227 +.LBB0_335: + ldr x17, [sp] + and x14, x14, x17 + b .LBB0_241 +.LBB0_336: + and x14, x14, #0xffffffffffffff07 + orr x14, x14, #0xf0 + b .LBB0_161 +.LBB0_337: + and x14, x14, #0xffffffffffff07ff + orr x14, x14, #0xf000 + b .LBB0_175 +.LBB0_338: + and x14, x14, #0xffffffffff07ffff + orr x14, x14, #0xf00000 + b .LBB0_189 +.LBB0_339: + and x14, x14, #0xffffffff07ffffff + orr x14, x14, #0xf0000000 + b .LBB0_203 +.LBB0_340: + and x14, x14, #0xffffff07ffffffff + orr x14, x14, #0xf000000000 + b .LBB0_217 +.LBB0_341: + and x14, x14, #0xffff07ffffffffff + orr x14, x14, #0xf00000000000 + b .LBB0_231 +.LBB0_342: + and x14, x14, #0xff07ffffffffffff + orr x14, x14, #0xf0000000000000 + b .LBB0_245 +.LBB0_343: + ldp x20, x19, [sp, #144] + ldp x22, x21, [sp, #128] + ldp x24, x23, [sp, #112] + ldp x26, x25, [sp, #96] + ldp x28, x27, [sp, #80] + ldp x29, x30, [sp, #64] ldr x30, [x18, #-8]! + add sp, sp, #160 ret .Lfunc_end0: .size refresh_new_image, .Lfunc_end0-refresh_new_image @@ -1261,7 +1623,7 @@ frame_done_callback: ldr w8, [x19, #472] sub w8, w8, #1 cmp w8, #4 - b.hi .LBB6_8 + b.hi .LBB6_10 adrp x9, .LJTI6_0 add x9, x9, :lo12:.LJTI6_0 adr x10, .LBB6_2 @@ -1271,27 +1633,35 @@ frame_done_callback: .LBB6_2: ldr w9, [x19, #304] mov x8, x19 - cbz w9, .LBB6_28 + cbz w9, .LBB6_32 ldr w8, [x19, #324] cbz w8, .LBB6_5 ldr w8, [x19, #760] - cbz w8, .LBB6_27 + cbz w8, .LBB6_8 .LBB6_5: ldr w8, [x19, #788] - cbz w8, .LBB6_22 + cbz w8, .LBB6_24 ldr x8, [x19, #448] ldr w8, [x8, #40] sub w8, w8, #12 cmp w8, #2 - b.hi .LBB6_22 + b.hi .LBB6_24 ldr w8, [x19, #320] - cbnz w8, .LBB6_27 - b .LBB6_22 + cbz w8, .LBB6_24 .LBB6_8: + ldr w9, [x19, #812] + mov x8, x19 + cmp w9, #1 + b.lt .LBB6_32 + adrp x1, .L.str.31 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.31 + b .LBB6_45 +.LBB6_10: ldr w8, [x19, #304] - cbnz w8, .LBB6_22 + cbnz w8, .LBB6_24 ldr w8, [x19, #872] - cbz w8, .LBB6_22 + cbz w8, .LBB6_24 ldr x0, [x19, #8] mov w1, wzr mov w2, wzr @@ -1300,26 +1670,26 @@ frame_done_callback: ldr w8, [x19, #812] str wzr, [x19, #284] cmp w8, #1 - b.lt .LBB6_33 - adrp x1, .L.str.31 + b.lt .LBB6_37 + adrp x1, .L.str.32 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.31 + add x1, x1, :lo12:.L.str.32 bl _dev_info - b .LBB6_33 -.LBB6_12: + b .LBB6_37 +.LBB6_14: ldr w8, [x19, #324] - cbz w8, .LBB6_23 + cbz w8, .LBB6_25 ldr w9, [x19, #812] mov x8, x19 cmp w9, #1 - b.ge .LBB6_39 -.LBB6_14: + b.ge .LBB6_43 +.LBB6_16: ldr x0, [x8, #8] mov w1, wzr mov w2, wzr ldr x8, [x0, #144] blr x8 -.LBB6_15: +.LBB6_17: adrp x8, jiffies mov w9, #335544320 add x0, x19, #720 @@ -1327,21 +1697,21 @@ frame_done_callback: add x1, x8, x9 bl mod_timer str wzr, [x19, #284] - b .LBB6_33 -.LBB6_16: + b .LBB6_37 +.LBB6_18: mov w8, #1 ldr w9, [x19, #292] str w8, [x19, #308] - cbnz w9, .LBB6_25 + cbnz w9, .LBB6_40 ldr w8, [x19, #296] - cbnz w8, .LBB6_25 + cbnz w8, .LBB6_40 ldr w8, [x19, #300] - cbz w8, .LBB6_25 ldr w9, [x19, #812] + cbz w8, .LBB6_39 mov x8, x19 cmp w9, #1 - b.ge .LBB6_42 -.LBB6_20: + b.ge .LBB6_47 +.LBB6_22: ldr x0, [x8, #8] mov w1, wzr mov w2, wzr @@ -1369,83 +1739,28 @@ frame_done_callback: bl mod_timer str wzr, [x19, #284] str wzr, [x19, #308] - b .LBB6_33 -.LBB6_21: + b .LBB6_37 +.LBB6_23: ldr w8, [x19, #304] - cbz w8, .LBB6_26 -.LBB6_22: + cbz w8, .LBB6_30 +.LBB6_24: adrp x8, ebc_auto_task mov w9, #1 ldr x0, [x8, :lo12:ebc_auto_task] str w9, [x19, #284] - bl wake_up_process - b .LBB6_34 -.LBB6_23: - ldr w8, [x19, #292] - cbnz w8, .LBB6_25 - ldr w8, [x19, #296] - cbz w8, .LBB6_36 + b .LBB6_41 .LBB6_25: - adrp x8, ebc_auto_task - ldr x0, [x8, :lo12:ebc_auto_task] - bl wake_up_process - b .LBB6_34 -.LBB6_26: - ldr w9, [x19, #324] - mov x8, x19 - cbz w9, .LBB6_28 -.LBB6_27: - ldr w9, [x19, #812] - mov x8, x19 - cmp w9, #1 - b.ge .LBB6_40 -.LBB6_28: - ldr x0, [x8, #8] - mov w1, wzr - mov w2, wzr - ldr x8, [x0, #144] - blr x8 - ldr w8, [x19, #812] - str wzr, [x19, #284] - cmp w8, #1 - b.ge .LBB6_35 - ldr w3, [x19, #912] - tbnz w3, #31, .LBB6_33 -.LBB6_30: - ldr w8, [x19, #312] - cmp w3, w8 - b.ge .LBB6_33 - ldr w2, [x19, #908] - tbnz w2, #31, .LBB6_33 - ldr w8, [x19, #316] - cmp w2, w8 - b.lt .LBB6_41 -.LBB6_33: - adrp x0, ebc_thread_wq - mov w1, #1 - add x0, x0, :lo12:ebc_thread_wq - bl __wake_up_sync -.LBB6_34: - ldp x20, x19, [sp, #16] - ldp x29, x30, [sp], #32 - ldr x30, [x18, #-8]! - ret -.LBB6_35: - adrp x1, .L.str.31 - ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.31 - bl _dev_info - ldr w3, [x19, #912] - tbz w3, #31, .LBB6_30 - b .LBB6_33 -.LBB6_36: + ldr w8, [x19, #292] + cbnz w8, .LBB6_40 + ldr w8, [x19, #296] + cbnz w8, .LBB6_40 ldr w8, [x19, #300] - cbz w8, .LBB6_25 + cbz w8, .LBB6_40 ldr w9, [x19, #812] mov x8, x19 cmp w9, #1 - b.ge .LBB6_43 -.LBB6_38: + b.ge .LBB6_49 +.LBB6_29: ldr x0, [x8, #8] mov w1, wzr mov w2, wzr @@ -1458,53 +1773,116 @@ frame_done_callback: mul w8, w9, w8 sxtw x2, w8 bl memset - b .LBB6_15 -.LBB6_39: - adrp x1, .L.str.28 - ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.28 - bl _dev_info - ldr x8, [x20, :lo12:global_ebc] - b .LBB6_14 -.LBB6_40: - adrp x1, .L.str.30 - ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.30 - bl _dev_info - ldr x8, [x20, :lo12:global_ebc] - b .LBB6_28 -.LBB6_41: + b .LBB6_17 +.LBB6_30: + ldr w9, [x19, #324] + mov x8, x19 + cbz w9, .LBB6_32 + ldr w9, [x19, #812] + mov x8, x19 + cmp w9, #1 + b.ge .LBB6_44 +.LBB6_32: + ldr x0, [x8, #8] + mov w1, wzr + mov w2, wzr + ldr x8, [x0, #144] + blr x8 + ldr w8, [x19, #812] + str wzr, [x19, #284] + cmp w8, #1 + b.ge .LBB6_38 + ldr w3, [x19, #912] + tbnz w3, #31, .LBB6_37 +.LBB6_34: + ldr w8, [x19, #312] + cmp w3, w8 + b.ge .LBB6_37 + ldr w2, [x19, #908] + tbnz w2, #31, .LBB6_37 + ldr w8, [x19, #316] + cmp w2, w8 + b.lt .LBB6_46 +.LBB6_37: + adrp x0, ebc_thread_wq + mov w1, #1 + add x0, x0, :lo12:ebc_thread_wq + bl __wake_up_sync + b .LBB6_42 +.LBB6_38: adrp x1, .L.str.32 - ldrb w8, [x19, #916] - add x4, x19, #917 ldr x0, [x19, #328] add x1, x1, :lo12:.L.str.32 - strb wzr, [x4, x8] bl _dev_info - b .LBB6_33 + ldr w3, [x19, #912] + tbz w3, #31, .LBB6_34 + b .LBB6_37 +.LBB6_39: + cmp w9, #1 + b.ge .LBB6_48 +.LBB6_40: + adrp x8, ebc_auto_task + ldr x0, [x8, :lo12:ebc_auto_task] +.LBB6_41: + bl wake_up_process .LBB6_42: - adrp x1, .L.str.27 - ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.27 - bl _dev_info - ldr x8, [x20, :lo12:global_ebc] - b .LBB6_20 + ldp x20, x19, [sp, #16] + ldp x29, x30, [sp], #32 + ldr x30, [x18, #-8]! + ret .LBB6_43: adrp x1, .L.str.29 ldr x0, [x19, #328] add x1, x1, :lo12:.L.str.29 bl _dev_info ldr x8, [x20, :lo12:global_ebc] - b .LBB6_38 + b .LBB6_16 +.LBB6_44: + ldr x0, [x19, #328] + adrp x1, .L.str.33 + add x1, x1, :lo12:.L.str.33 +.LBB6_45: + bl _dev_info + ldr x8, [x20, :lo12:global_ebc] + b .LBB6_32 +.LBB6_46: + adrp x1, .L.str.34 + ldrb w8, [x19, #916] + add x4, x19, #917 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.34 + strb wzr, [x4, x8] + bl _dev_info + b .LBB6_37 +.LBB6_47: + adrp x1, .L.str.28 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.28 + bl _dev_info + ldr x8, [x20, :lo12:global_ebc] + b .LBB6_22 +.LBB6_48: + adrp x1, .L.str.27 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.27 + bl _dev_info + b .LBB6_40 +.LBB6_49: + adrp x1, .L.str.30 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.30 + bl _dev_info + ldr x8, [x20, :lo12:global_ebc] + b .LBB6_29 .Lfunc_end6: .size frame_done_callback, .Lfunc_end6-frame_done_callback .section .rodata,"a",@progbits .LJTI6_0: .byte (.LBB6_2-.LBB6_2)>>2 - .byte (.LBB6_8-.LBB6_2)>>2 - .byte (.LBB6_12-.LBB6_2)>>2 - .byte (.LBB6_16-.LBB6_2)>>2 - .byte (.LBB6_21-.LBB6_2)>>2 + .byte (.LBB6_10-.LBB6_2)>>2 + .byte (.LBB6_14-.LBB6_2)>>2 + .byte (.LBB6_18-.LBB6_2)>>2 + .byte (.LBB6_23-.LBB6_2)>>2 .text .p2align 2 @@ -1514,9 +1892,9 @@ ebc_panel_probe: stp x29, x30, [sp, #-48]! mov x2, x0 stp x20, x19, [sp, #32] - adrp x1, .L.str.33 + adrp x1, .L.str.35 mov x19, x0 - add x1, x1, :lo12:.L.str.33 + add x1, x1, :lo12:.L.str.35 mov w3, #1 ldr x20, [x2], #76 mov x4, xzr @@ -1526,33 +1904,17 @@ ebc_panel_probe: bl of_property_read_variable_u32_array tbnz w0, #31, .LBB7_38 add x21, x20, #656 - adrp x1, .L.str.34 - add x2, x19, #80 - add x1, x1, :lo12:.L.str.34 - mov w3, #1 - mov x4, xzr - ldr x0, [x21] - bl of_property_read_variable_u32_array - tbnz w0, #31, .LBB7_38 - adrp x1, .L.str.35 - ldr x0, [x21] - add x2, x19, #84 - add x1, x1, :lo12:.L.str.35 - mov w3, #1 - mov x4, xzr - bl of_property_read_variable_u32_array - tbnz w0, #31, .LBB7_38 adrp x1, .L.str.36 - ldr x0, [x21] - add x2, x19, #88 + add x2, x19, #80 add x1, x1, :lo12:.L.str.36 mov w3, #1 mov x4, xzr + ldr x0, [x21] bl of_property_read_variable_u32_array tbnz w0, #31, .LBB7_38 adrp x1, .L.str.37 ldr x0, [x21] - add x2, x19, #104 + add x2, x19, #84 add x1, x1, :lo12:.L.str.37 mov w3, #1 mov x4, xzr @@ -1560,7 +1922,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.38 ldr x0, [x21] - add x2, x19, #108 + add x2, x19, #88 add x1, x1, :lo12:.L.str.38 mov w3, #1 mov x4, xzr @@ -1568,7 +1930,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.39 ldr x0, [x21] - add x2, x19, #112 + add x2, x19, #104 add x1, x1, :lo12:.L.str.39 mov w3, #1 mov x4, xzr @@ -1576,7 +1938,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.40 ldr x0, [x21] - add x2, x19, #116 + add x2, x19, #108 add x1, x1, :lo12:.L.str.40 mov w3, #1 mov x4, xzr @@ -1584,7 +1946,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.41 ldr x0, [x21] - add x2, x19, #120 + add x2, x19, #112 add x1, x1, :lo12:.L.str.41 mov w3, #1 mov x4, xzr @@ -1592,7 +1954,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.42 ldr x0, [x21] - add x2, x19, #124 + add x2, x19, #116 add x1, x1, :lo12:.L.str.42 mov w3, #1 mov x4, xzr @@ -1600,7 +1962,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.43 ldr x0, [x21] - add x2, x19, #128 + add x2, x19, #120 add x1, x1, :lo12:.L.str.43 mov w3, #1 mov x4, xzr @@ -1608,7 +1970,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.44 ldr x0, [x21] - add x2, x19, #132 + add x2, x19, #124 add x1, x1, :lo12:.L.str.44 mov w3, #1 mov x4, xzr @@ -1616,7 +1978,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.45 ldr x0, [x21] - add x2, x19, #136 + add x2, x19, #128 add x1, x1, :lo12:.L.str.45 mov w3, #1 mov x4, xzr @@ -1624,7 +1986,7 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.46 ldr x0, [x21] - add x2, x19, #140 + add x2, x19, #132 add x1, x1, :lo12:.L.str.46 mov w3, #1 mov x4, xzr @@ -1632,16 +1994,32 @@ ebc_panel_probe: tbnz w0, #31, .LBB7_38 adrp x1, .L.str.47 ldr x0, [x21] - add x2, x19, #144 + add x2, x19, #136 add x1, x1, :lo12:.L.str.47 mov w3, #1 mov x4, xzr bl of_property_read_variable_u32_array tbnz w0, #31, .LBB7_38 - add x20, x19, #148 adrp x1, .L.str.48 ldr x0, [x21] + add x2, x19, #140 add x1, x1, :lo12:.L.str.48 + mov w3, #1 + mov x4, xzr + bl of_property_read_variable_u32_array + tbnz w0, #31, .LBB7_38 + adrp x1, .L.str.49 + ldr x0, [x21] + add x2, x19, #144 + add x1, x1, :lo12:.L.str.49 + mov w3, #1 + mov x4, xzr + bl of_property_read_variable_u32_array + tbnz w0, #31, .LBB7_38 + add x20, x19, #148 + adrp x1, .L.str.50 + ldr x0, [x21] + add x1, x1, :lo12:.L.str.50 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1650,9 +2028,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_17: add x20, x19, #152 - adrp x1, .L.str.49 + adrp x1, .L.str.51 ldr x0, [x21] - add x1, x1, :lo12:.L.str.49 + add x1, x1, :lo12:.L.str.51 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1661,9 +2039,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_19: add x20, x19, #156 - adrp x1, .L.str.50 + adrp x1, .L.str.52 ldr x0, [x21] - add x1, x1, :lo12:.L.str.50 + add x1, x1, :lo12:.L.str.52 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1672,9 +2050,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_21: add x20, x19, #92 - adrp x1, .L.str.51 + adrp x1, .L.str.53 ldr x0, [x21] - add x1, x1, :lo12:.L.str.51 + add x1, x1, :lo12:.L.str.53 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1683,9 +2061,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_23: add x20, x19, #96 - adrp x1, .L.str.52 + adrp x1, .L.str.54 ldr x0, [x21] - add x1, x1, :lo12:.L.str.52 + add x1, x1, :lo12:.L.str.54 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1694,9 +2072,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_25: add x20, x19, #160 - adrp x1, .L.str.53 + adrp x1, .L.str.55 ldr x0, [x21] - add x1, x1, :lo12:.L.str.53 + add x1, x1, :lo12:.L.str.55 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1705,9 +2083,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_27: add x20, x19, #164 - adrp x1, .L.str.54 + adrp x1, .L.str.56 ldr x0, [x21] - add x1, x1, :lo12:.L.str.54 + add x1, x1, :lo12:.L.str.56 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1716,9 +2094,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_29: add x20, x19, #176 - adrp x1, .L.str.55 + adrp x1, .L.str.57 ldr x0, [x21] - add x1, x1, :lo12:.L.str.55 + add x1, x1, :lo12:.L.str.57 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1727,9 +2105,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_31: add x20, x19, #180 - adrp x1, .L.str.56 + adrp x1, .L.str.58 ldr x0, [x21] - add x1, x1, :lo12:.L.str.56 + add x1, x1, :lo12:.L.str.58 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1738,9 +2116,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_33: add x20, x19, #168 - adrp x1, .L.str.57 + adrp x1, .L.str.59 ldr x0, [x21] - add x1, x1, :lo12:.L.str.57 + add x1, x1, :lo12:.L.str.59 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1749,9 +2127,9 @@ ebc_panel_probe: str wzr, [x20] .LBB7_35: add x20, x19, #172 - adrp x1, .L.str.58 + adrp x1, .L.str.60 ldr x0, [x21] - add x1, x1, :lo12:.L.str.58 + add x1, x1, :lo12:.L.str.60 mov x2, x20 mov w3, #1 mov x4, xzr @@ -1759,9 +2137,9 @@ ebc_panel_probe: tbz w0, #31, .LBB7_37 str wzr, [x20] .LBB7_37: - adrp x1, .L.str.59 + adrp x1, .L.str.61 ldr x0, [x21] - add x1, x1, :lo12:.L.str.59 + add x1, x1, :lo12:.L.str.61 mov x2, xzr bl of_find_property cmp x0, #0 @@ -1800,10 +2178,10 @@ ebc_buffer_manage_init: cmp w8, #1280, lsl #12 stp xzr, xzr, [sp, #8] b.gt .LBB8_23 - adrp x1, .L.str.61 + adrp x1, .L.str.63 mov x19, x0 ldr x0, [x20, #656] - add x1, x1, :lo12:.L.str.61 + add x1, x1, :lo12:.L.str.63 add x5, sp, #72 mov x2, xzr mov w3, wzr @@ -1918,23 +2296,23 @@ ebc_buffer_manage_init: str xzr, [x19, #848] b .LBB8_26 .LBB8_23: - adrp x1, .L.str.60 + adrp x1, .L.str.62 mov x0, x20 - add x1, x1, :lo12:.L.str.60 + add x1, x1, :lo12:.L.str.62 bl _dev_err mov w21, #-19 b .LBB8_26 .LBB8_24: - adrp x1, .L.str.62 + adrp x1, .L.str.64 mov w21, w0 - add x1, x1, :lo12:.L.str.62 + add x1, x1, :lo12:.L.str.64 mov x0, x20 bl _dev_err b .LBB8_26 .LBB8_25: - adrp x1, .L.str.63 + adrp x1, .L.str.65 mov x0, x20 - add x1, x1, :lo12:.L.str.63 + add x1, x1, :lo12:.L.str.65 mov w2, #58720256 bl _dev_err mov w21, #-19 @@ -1952,9 +2330,9 @@ ebc_buffer_manage_init: add sp, sp, #208 ret .LBB8_28: - adrp x1, .L.str.64 + adrp x1, .L.str.66 mov x0, x20 - add x1, x1, :lo12:.L.str.64 + add x1, x1, :lo12:.L.str.66 bl _dev_err b .LBB8_7 .LBB8_29: @@ -2020,12 +2398,12 @@ ebc_lut_table_init: stp x29, x30, [sp, #160] add x29, sp, #160 stp x22, x21, [sp, #176] - adrp x1, .L.str.65 + adrp x1, .L.str.67 stp x20, x19, [sp, #192] mrs x8, SP_EL0 ldr x8, [x8, #1584] mov x19, x0 - add x1, x1, :lo12:.L.str.65 + add x1, x1, :lo12:.L.str.67 add x5, sp, #72 mov x2, xzr mov w3, wzr @@ -2051,9 +2429,9 @@ ebc_lut_table_init: cbnz w8, .LBB9_9 ldr x21, [sp, #72] cbz x21, .LBB9_9 - adrp x1, .L.str.66 + adrp x1, .L.str.68 add x2, sp, #4 - add x1, x1, :lo12:.L.str.66 + add x1, x1, :lo12:.L.str.68 mov x0, x22 bl of_get_property ldr w1, [sp, #4] @@ -2097,28 +2475,28 @@ ebc_lut_table_init: add sp, sp, #208 ret .LBB9_11: - adrp x1, .L.str.67 + adrp x1, .L.str.69 adrp x2, .L__func__.ebc_lut_table_init ldr x0, [x19, #96] - add x1, x1, :lo12:.L.str.67 + add x1, x1, :lo12:.L.str.69 add x2, x2, :lo12:.L__func__.ebc_lut_table_init - mov w3, #4309 + mov w3, #4226 bl _dev_err mov w0, #-12 b .LBB9_9 .LBB9_12: - adrp x1, .L.str.68 + adrp x1, .L.str.70 ldr x0, [x19, #96] - add x1, x1, :lo12:.L.str.68 + add x1, x1, :lo12:.L.str.70 bl _dev_err ldr x0, [x19, #96] mov w2, w21 ldr x1, [x19, #200] bl epd_lut_from_file_init tbz w0, #31, .LBB9_8 - adrp x1, .L.str.69 + adrp x1, .L.str.71 ldr x0, [x19, #96] - add x1, x1, :lo12:.L.str.69 + add x1, x1, :lo12:.L.str.71 bl _dev_err mov w0, #-1 b .LBB9_9 @@ -2133,7 +2511,7 @@ ebc_task_init: sub sp, sp, #64 str x30, [x18], #8 stp x29, x30, [sp, #16] - adrp x3, .L.str.70 + adrp x3, .L.str.72 str x21, [sp, #32] mov w9, #99 stp x20, x19, [sp, #48] @@ -2142,7 +2520,7 @@ ebc_task_init: adrp x0, ebc_auto_tast_function ldr x8, [x8, #1584] add x0, x0, :lo12:ebc_auto_tast_function - add x3, x3, :lo12:.L.str.70 + add x3, x3, :lo12:.L.str.72 mov x1, x19 mov w2, #-1 add x29, sp, #16 @@ -2195,9 +2573,9 @@ ebc_task_init: tbnz w8, #31, .LBB10_25 .LBB10_6: adrp x0, ebc_auto_assist_tast_function - adrp x3, .L.str.72 + adrp x3, .L.str.74 add x0, x0, :lo12:ebc_auto_assist_tast_function - add x3, x3, :lo12:.L.str.72 + add x3, x3, :lo12:.L.str.74 mov x1, x19 mov w2, #-1 bl kthread_create_on_node @@ -2247,10 +2625,10 @@ ebc_task_init: tbnz w8, #31, .LBB10_26 .LBB10_12: adrp x0, ebc_thread - adrp x3, .L.str.74 + adrp x3, .L.str.76 mov w8, #99 add x0, x0, :lo12:ebc_thread - add x3, x3, :lo12:.L.str.74 + add x3, x3, :lo12:.L.str.76 mov x1, x19 mov w2, #-1 str w8, [sp] @@ -2318,20 +2696,20 @@ ebc_task_init: add sp, sp, #64 ret .LBB10_21: - adrp x1, .L.str.71 + adrp x1, .L.str.73 ldr x0, [x19, #96] - add x1, x1, :lo12:.L.str.71 + add x1, x1, :lo12:.L.str.73 b .LBB10_24 .LBB10_22: ldr x0, [x19, #96] - adrp x1, .L.str.73 - add x1, x1, :lo12:.L.str.73 + adrp x1, .L.str.75 + add x1, x1, :lo12:.L.str.75 b .LBB10_24 .LBB10_23: adrp x8, ebc_task ldr x0, [x19, #96] - adrp x1, .L.str.75 - add x1, x1, :lo12:.L.str.75 + adrp x1, .L.str.77 + add x1, x1, :lo12:.L.str.77 str x20, [x8, :lo12:ebc_task] .LBB10_24: bl _dev_err @@ -2440,9 +2818,9 @@ ebc_other_init: str w9, [x19, #556] str w8, [x19, #568] b.eq .LBB11_4 - adrp x8, .L.str.115 + adrp x8, .L.str.119 stp xzr, xzr, [x19, #424] - add x8, x8, :lo12:.L.str.115 + add x8, x8, :lo12:.L.str.119 stp xzr, xzr, [x19, #408] stp xzr, xzr, [x19, #392] stp xzr, xzr, [x19, #376] @@ -2505,24 +2883,24 @@ ebc_logo_init: mrs x8, SP_EL0 ldr x8, [x8, #1584] mov x20, x1 - adrp x1, .L.str.117 + adrp x1, .L.str.121 mov x19, x0 - add x1, x1, :lo12:.L.str.117 + add x1, x1, :lo12:.L.str.121 str x8, [sp, #8] ldr x22, [x9, :lo12:saved_command_line] str xzr, [sp] mov x0, x22 bl strstr - adrp x1, .L.str.118 + adrp x1, .L.str.122 mov x21, x0 - add x1, x1, :lo12:.L.str.118 + add x1, x1, :lo12:.L.str.122 mov x0, x22 bl strstr mov x22, x0 cbz x21, .LBB12_3 - adrp x1, .L.str.119 + adrp x1, .L.str.123 add x2, sp, #4 - add x1, x1, :lo12:.L.str.119 + add x1, x1, :lo12:.L.str.123 mov x0, x21 bl sscanf ldr w2, [sp, #4] @@ -2534,9 +2912,9 @@ ebc_logo_init: mov w23, #1 cbz x22, .LBB12_28 .LBB12_4: - adrp x1, .L.str.122 + adrp x1, .L.str.126 mov x2, sp - add x1, x1, :lo12:.L.str.122 + add x1, x1, :lo12:.L.str.126 mov x0, x22 bl sscanf ldr w2, [sp] @@ -2547,8 +2925,8 @@ ebc_logo_init: mov w24, #1 cbnz w23, .LBB12_29 .LBB12_6: - adrp x0, .L.str.126 - add x0, x0, :lo12:.L.str.126 + adrp x0, .L.str.130 + add x0, x0, :lo12:.L.str.130 bl ebc_empty_buf_get cbz x0, .LBB12_12 ldp w8, w9, [x20, #76] @@ -2580,8 +2958,8 @@ ebc_logo_init: bl ebc_add_to_dsp_buf_list .LBB12_12: tbnz w24, #0, .LBB12_18 - adrp x0, .L.str.126 - add x0, x0, :lo12:.L.str.126 + adrp x0, .L.str.130 + add x0, x0, :lo12:.L.str.130 bl ebc_empty_buf_get cbz x0, .LBB12_18 ldp w8, w9, [x20, #76] @@ -2641,9 +3019,9 @@ ebc_logo_init: add sp, sp, #80 ret .LBB12_26: - adrp x1, .L.str.120 + adrp x1, .L.str.124 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.120 + add x1, x1, :lo12:.L.str.124 bl _dev_info ldp w9, w8, [x20, #76] mov w1, #3520 @@ -2666,18 +3044,18 @@ ebc_logo_init: mov w24, #1 cbz w23, .LBB12_6 .LBB12_29: - adrp x1, .L.str.125 + adrp x1, .L.str.129 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.125 + add x1, x1, :lo12:.L.str.129 bl _dev_info ldr x0, [x19, #16] cbz x0, .LBB12_33 bl ebc_pmic_verity_vcom b .LBB12_34 .LBB12_31: - adrp x1, .L.str.123 + adrp x1, .L.str.127 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.123 + add x1, x1, :lo12:.L.str.127 bl _dev_info ldp w9, w8, [x20, #76] mov w1, #3520 @@ -2701,8 +3079,8 @@ ebc_logo_init: ldr x0, [x19, #24] bl ebc_regulator_verity_vcom .LBB12_34: - adrp x0, .L.str.127 - add x0, x0, :lo12:.L.str.127 + adrp x0, .L.str.131 + add x0, x0, :lo12:.L.str.131 bl ebc_empty_buf_get ldp w8, w9, [x20, #76] mov x23, x0 @@ -2721,15 +3099,15 @@ ebc_logo_init: stp w8, w9, [x23, #60] b .LBB12_11 .LBB12_35: - adrp x1, .L.str.121 + adrp x1, .L.str.125 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.121 + add x1, x1, :lo12:.L.str.125 bl _dev_err b .LBB12_24 .LBB12_36: - adrp x1, .L.str.124 + adrp x1, .L.str.128 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.124 + add x1, x1, :lo12:.L.str.128 bl _dev_err b .LBB12_24 .LBB12_37: @@ -3149,6 +3527,7 @@ ebc_auto_tast_function: ldr x8, [x28, #448] mov x6, x25 ldp x0, x1, [x28, #368] + mov w7, #1 ldp x4, x5, [x28, #392] ldr x2, [x28, #248] ldr x3, [x8, #16] @@ -3492,14 +3871,14 @@ ebc_thread: ldr x19, [x8, :lo12:global_ebc] stp x26, x25, [sp, #160] stp x24, x23, [sp, #176] - mov x26, #1030792151040 + mov w23, #1 stp x22, x21, [sp, #192] mov w22, #-268435456 add x8, x19, #232 add x9, x19, #328 + mov x26, #1030792151040 mov x25, #263882790666240 - mov w27, #-402653184 - mov w23, #59392 + mov w27, #59392 mov w24, #232 str x8, [sp, #24] add x8, x19, #812 @@ -3531,7 +3910,7 @@ ebc_thread: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_92 + b.ge .LBB16_95 .LBB16_7: mov x0, x20 bl ebc_buf_release @@ -3560,77 +3939,87 @@ ebc_thread: ldr w2, [x8, #40] .LBB16_15: cmp w2, #23 - b.hi .LBB16_475 - mov w8, #1 - lsl w8, w8, w2 + b.hi .LBB16_512 + lsl w8, w23, w2 tst w8, #0x1ff80 - b.ne .LBB16_28 + b.ne .LBB16_32 mov w9, #124 movk w9, #34, lsl #16 tst w8, w9 - b.eq .LBB16_97 - mov w20, #2 + b.eq .LBB16_100 + mov w21, #2 ldr w8, [x11] - cbnz w8, .LBB16_29 - b .LBB16_48 + cbnz w8, .LBB16_33 + b .LBB16_39 .LBB16_19: ldr w8, [x19, #320] - cbz w8, .LBB16_34 + cbz w8, .LBB16_41 .LBB16_20: str wzr, [x19, #320] b .LBB16_3 .LBB16_21: ldr w9, [x19, #768] ldr w8, [x19, #472] - cbz w9, .LBB16_87 + cbz w9, .LBB16_90 cmp w8, #1 - b.eq .LBB16_89 + b.eq .LBB16_92 cmp w8, #5 - b.eq .LBB16_89 + b.eq .LBB16_92 cmp w8, #2 - b.ne .LBB16_255 - b .LBB16_254 + b.ne .LBB16_128 + b .LBB16_127 .LBB16_25: ldr w8, [x19, #472] cmp w8, #1 - b.eq .LBB16_74 + b.eq .LBB16_77 cmp w8, #5 - b.eq .LBB16_74 + b.eq .LBB16_77 cmp w8, #2 - b.ne .LBB16_111 - b .LBB16_110 -.LBB16_28: - mov w20, #1 + b.ne .LBB16_326 + ldr x8, [x19, #440] + ldr x0, [x19, #376] + ldrsw x2, [x19, #260] + ldr x1, [x8, #16] + bl memcpy + ldr x8, [x19, #448] + ldr x0, [x19, #368] + ldrsw x2, [x19, #260] + ldr w9, [x8, #40] + ldr x1, [x8, #16] + sub w8, w9, #2 + cmp w8, #9 + b.hi .LBB16_151 + add w8, w2, #7 + cmp w8, #15 + b.lo .LBB16_326 + add w8, w2, #7 + cmp w2, #0 + csel w8, w8, w2, lt + asr w8, w8, #3 + sub w8, w8, #1 +.LBB16_31: + sbfiz x9, x8, #3, #32 + sub w8, w8, #1 + cmn w8, #1 + ldr x10, [x1, x9] + and x10, x10, #0xf8f8f8f8f8f8f8f8 + str x10, [x0, x9] + b.ne .LBB16_31 + b .LBB16_326 +.LBB16_32: + mov w21, #1 ldr w8, [x11] - cbz w8, .LBB16_48 -.LBB16_29: + cbz w8, .LBB16_39 +.LBB16_33: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_391 -.LBB16_30: - sub x0, x29, #40 - mov w1, wzr - stp xzr, xzr, [x29, #-16] - stp xzr, xzr, [x29, #-32] - stur xzr, [x29, #-40] - bl init_wait_entry -.LBB16_31: - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - mov w2, #1 - bl prepare_to_wait_event - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_46 - cbnz x0, .LBB16_47 - bl schedule - b .LBB16_31 + b.ge .LBB16_274 .LBB16_34: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] + mov x20, x11 stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry @@ -3639,37 +4028,10 @@ ebc_thread: add x0, x0, :lo12:ebc_thread_wq mov w2, #1 bl prepare_to_wait_event - ldr w8, [x19, #320] - cbz w8, .LBB16_93 + ldr w8, [x20] + cbz w8, .LBB16_37 .LBB16_35: - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - bl finish_wait - ldr w8, [x19, #320] - cbnz w8, .LBB16_3 -.LBB16_36: - ldur x20, [x29, #-48] - ldr w8, [x20] - cmp w8, #1 - b.ne .LBB16_240 - sub x0, x29, #40 - mov w1, wzr - stp xzr, xzr, [x29, #-16] - stp xzr, xzr, [x29, #-32] - stur xzr, [x29, #-40] - bl init_wait_entry - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - mov w2, #1 - bl prepare_to_wait_event - ldr w8, [x20] - cbz w8, .LBB16_41 -.LBB16_38: - ldr w8, [x19, #320] - cbnz w8, .LBB16_41 - cbnz x0, .LBB16_42 + cbnz x0, .LBB16_38 bl schedule adrp x0, ebc_thread_wq sub x1, x29, #40 @@ -3678,38 +4040,22 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbnz w8, .LBB16_38 -.LBB16_41: + cbnz w8, .LBB16_35 +.LBB16_37: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_42: - bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_3 - bl ebc_get_osd_list_enum_num - cbnz w0, .LBB16_3 - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_242 - ldr w8, [x19, #320] - cbnz w8, .LBB16_20 - b .LBB16_243 -.LBB16_46: - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - bl finish_wait -.LBB16_47: +.LBB16_38: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_392 -.LBB16_48: + b.ge .LBB16_275 +.LBB16_39: ldr w8, [x19, #472] sub w9, w8, #3 cmp w9, #2 - b.hs .LBB16_50 + b.hs .LBB16_53 ldr x8, [x19, #440] str wzr, [x19, #784] str wzr, [x19, #796] @@ -3717,61 +4063,129 @@ ebc_thread: ldrsw x2, [x19, #260] ldr x0, [x8, #16] bl memcpy - b .LBB16_54 -.LBB16_50: + b .LBB16_57 +.LBB16_41: + sub x0, x29, #40 + mov w1, wzr + stp xzr, xzr, [x29, #-16] + stp xzr, xzr, [x29, #-32] + stur xzr, [x29, #-40] + bl init_wait_entry + adrp x0, ebc_thread_wq + sub x1, x29, #40 + add x0, x0, :lo12:ebc_thread_wq + mov w2, #1 + bl prepare_to_wait_event + ldr w8, [x19, #320] + cbz w8, .LBB16_96 +.LBB16_42: + adrp x0, ebc_thread_wq + sub x1, x29, #40 + add x0, x0, :lo12:ebc_thread_wq + bl finish_wait + ldr w8, [x19, #320] + cbnz w8, .LBB16_3 +.LBB16_43: + ldur x20, [x29, #-48] + ldr w8, [x20] cmp w8, #1 - b.ne .LBB16_54 + b.ne .LBB16_113 + sub x0, x29, #40 + mov w1, wzr + stp xzr, xzr, [x29, #-16] + stp xzr, xzr, [x29, #-32] + stur xzr, [x29, #-40] + bl init_wait_entry + adrp x0, ebc_thread_wq + sub x1, x29, #40 + add x0, x0, :lo12:ebc_thread_wq + mov w2, #1 + bl prepare_to_wait_event + ldr w8, [x20] + cbz w8, .LBB16_48 +.LBB16_45: + ldr w8, [x19, #320] + cbnz w8, .LBB16_48 + cbnz x0, .LBB16_49 + bl schedule + adrp x0, ebc_thread_wq + sub x1, x29, #40 + add x0, x0, :lo12:ebc_thread_wq + mov w2, #1 + bl prepare_to_wait_event + ldur x8, [x29, #-48] + ldr w8, [x8] + cbnz w8, .LBB16_45 +.LBB16_48: + adrp x0, ebc_thread_wq + sub x1, x29, #40 + add x0, x0, :lo12:ebc_thread_wq + bl finish_wait +.LBB16_49: + bl ebc_get_dsp_list_enum_num + cbnz w0, .LBB16_3 + bl ebc_get_osd_list_enum_num + cbnz w0, .LBB16_3 + ldur x8, [x29, #-48] + ldr w8, [x8] + cbz w8, .LBB16_115 + ldr w8, [x19, #320] + cbnz w8, .LBB16_20 + b .LBB16_116 +.LBB16_53: + cmp w8, #1 + b.ne .LBB16_57 ldr w2, [x19, #304] - cbz w2, .LBB16_54 + cbz w2, .LBB16_57 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_450 -.LBB16_53: + b.ge .LBB16_486 +.LBB16_56: mov w8, #21 ldr x9, [sp, #64] str wzr, [x19, #304] - mov w20, #2 + mov w21, #2 str w8, [x9, #40] ldr w9, [x19, #788] - b .LBB16_78 -.LBB16_54: + b .LBB16_81 +.LBB16_57: ldr x8, [sp, #64] ldr w8, [x8, #40] sub w9, w8, #6 cmp w9, #6 - b.lo .LBB16_56 + b.lo .LBB16_59 sub w9, w8, #2 cmp w9, #1 - b.hi .LBB16_68 -.LBB16_56: + b.hi .LBB16_71 +.LBB16_59: ldr w9, [x19, #260] add w10, w9, #7 cmp w9, #0 csel w10, w10, w9, lt cmp w9, #8 - b.lt .LBB16_72 + b.lt .LBB16_75 ldr x9, [x19, #440] asr w10, w10, #3 ldr x11, [sp, #64] ldr x9, [x9, #16] ldr x11, [x11, #16] - b .LBB16_59 -.LBB16_58: + b .LBB16_62 +.LBB16_61: subs w10, w10, #1 - b.eq .LBB16_72 -.LBB16_59: + b.eq .LBB16_75 +.LBB16_62: ldr x12, [x11], #8 ldr x13, [x9], #8 eor x14, x13, x12 tst x14, #0xf8f8f8f8f8f8f8f8 - b.eq .LBB16_58 + b.eq .LBB16_61 and w14, w12, #0xf8 and w15, w13, #0xf8 subs w14, w14, w15 cneg w14, w14, mi cmp w14, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 ubfx x14, x12, #8, #24 ubfx x15, x13, #8, #24 and w14, w14, #0xf8 @@ -3779,7 +4193,7 @@ ebc_thread: subs w14, w14, w15 cneg w14, w14, mi cmp w14, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 ubfx x14, x12, #16, #16 ubfx x15, x13, #16, #16 and w14, w14, #0xf8 @@ -3787,7 +4201,7 @@ ebc_thread: subs w14, w14, w15 cneg w14, w14, mi cmp w14, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 and x14, x12, #0xf8f8f8f8f8f8f8f8 and x15, x13, #0xf8f8f8f8f8f8f8f8 ubfx x16, x14, #24, #8 @@ -3795,7 +4209,7 @@ ebc_thread: subs w16, w16, w17 cneg w16, w16, mi cmp w16, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 lsr x16, x12, #32 lsr x17, x13, #32 and w16, w16, #0xf8 @@ -3803,7 +4217,7 @@ ebc_thread: subs w16, w16, w17 cneg w16, w16, mi cmp w16, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 lsr x16, x12, #40 lsr x17, x13, #40 and w16, w16, #0xf8 @@ -3811,7 +4225,7 @@ ebc_thread: subs w16, w16, w17 cneg w16, w16, mi cmp w16, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 lsr x12, x12, #48 lsr x13, x13, #48 and w12, w12, #0xf8 @@ -3819,44 +4233,44 @@ ebc_thread: subs w12, w12, w13 cneg w12, w12, mi cmp w12, #8 - b.hi .LBB16_68 + b.hi .LBB16_71 lsr x12, x14, #56 lsr x13, x15, #56 subs w12, w12, w13 cneg w12, w12, mi cmp w12, #8 - b.ls .LBB16_58 -.LBB16_68: + b.ls .LBB16_61 +.LBB16_71: ldr w9, [x19, #788] - cbz w9, .LBB16_78 + cbz w9, .LBB16_81 sub w10, w8, #12 cmp w10, #2 - b.hi .LBB16_78 + b.hi .LBB16_81 ldr w8, [x19, #784] - cbz w8, .LBB16_270 + cbz w8, .LBB16_152 ldr x8, [x19, #440] ldr x1, [x19, #376] ldrsw x2, [x19, #260] ldr x0, [x8, #16] - b .LBB16_273 -.LBB16_72: + b .LBB16_155 +.LBB16_75: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_428 -.LBB16_73: + b.ge .LBB16_311 +.LBB16_76: ldr x8, [sp, #64] str x8, [x19, #448] - b .LBB16_469 -.LBB16_74: + b .LBB16_506 +.LBB16_77: ldr w2, [x19, #304] - cbz w2, .LBB16_103 + cbz w2, .LBB16_106 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #0 - b.gt .LBB16_442 + b.gt .LBB16_479 str wzr, [x19, #772] -.LBB16_77: +.LBB16_80: adrp x8, jiffies ldr x21, [x8, :lo12:jiffies] ldr w8, [x19, #304] @@ -3867,68 +4281,71 @@ ebc_thread: ldr x0, [sp, #8] bl mod_timer str wzr, [x19, #304] - b .LBB16_111 -.LBB16_78: - cbz w9, .LBB16_277 + b .LBB16_326 +.LBB16_81: + cbz w9, .LBB16_159 ldr w9, [x19, #784] - cbz w9, .LBB16_277 + cbz w9, .LBB16_159 cmp w8, #21 - b.eq .LBB16_277 + b.eq .LBB16_159 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_471 -.LBB16_82: + b.ge .LBB16_508 +.LBB16_85: ldr w8, [x19, #260] cmp w8, #1 - b.lt .LBB16_276 + b.lt .LBB16_158 ldr x10, [x19, #448] ldr x11, [sp, #64] ldr x9, [x19, #384] ldr x10, [x10, #16] ldr x11, [x11, #16] - b .LBB16_85 -.LBB16_84: + b .LBB16_88 +.LBB16_87: subs x8, x8, #1 add x10, x10, #1 add x11, x11, #1 add x9, x9, #1 - b.eq .LBB16_276 -.LBB16_85: + b.eq .LBB16_158 +.LBB16_88: ldrb w12, [x9] - cbz w12, .LBB16_84 + cbz w12, .LBB16_87 ldrb w12, [x11] mvn w12, w12 and w12, w12, #0xf0 strb w12, [x10] - b .LBB16_84 -.LBB16_87: + b .LBB16_87 +.LBB16_90: cmp w8, #4 b.ne .LBB16_13 ldr w8, [x11] - cbnz w8, .LBB16_255 + cbnz w8, .LBB16_128 b .LBB16_13 -.LBB16_89: +.LBB16_92: ldr w2, [x19, #304] - cbz w2, .LBB16_247 + cbz w2, .LBB16_120 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_449 -.LBB16_91: - str wzr, [x19, #304] - b .LBB16_255 -.LBB16_92: + b.lt .LBB16_128 ldr x8, [sp, #16] - adrp x1, .L.str.76 - add x1, x1, :lo12:.L.str.76 + adrp x1, .L.str.79 + add x1, x1, :lo12:.L.str.79 + ldr x0, [x8] + bl _dev_info + b .LBB16_128 +.LBB16_95: + ldr x8, [sp, #16] + adrp x1, .L.str.78 + add x1, x1, :lo12:.L.str.78 ldr x0, [x8] bl _dev_info b .LBB16_7 -.LBB16_93: +.LBB16_96: mov w8, #38 -.LBB16_94: - cbnz x0, .LBB16_36 +.LBB16_97: + cbnz x0, .LBB16_43 mov x0, x8 bl schedule_timeout mov x20, x0 @@ -3941,53 +4358,53 @@ ebc_thread: cmp x20, #0 ccmp w9, #0, #4, eq csinc x8, x20, xzr, eq - cbnz w9, .LBB16_35 - cbnz x8, .LBB16_94 - b .LBB16_35 -.LBB16_97: + cbnz w9, .LBB16_42 + cbnz x8, .LBB16_97 + b .LBB16_42 +.LBB16_100: mov w9, #1 movk w9, #192, lsl #16 tst w8, w9 - b.eq .LBB16_475 + b.eq .LBB16_512 ldr w8, [x19, #472] ldr x9, [sp, #64] sub w8, w8, #1 cmp w8, #4 str x9, [x19, #448] - b.hi .LBB16_399 + b.hi .LBB16_282 adrp x12, .LJTI16_0 add x12, x12, :lo12:.LJTI16_0 - adr x9, .LBB16_100 + adr x9, .LBB16_103 ldrh w10, [x12, x8, lsl #1] add x9, x9, x10, lsl #2 br x9 -.LBB16_100: - ldr w2, [x19, #304] - cbz w2, .LBB16_420 - ldur x8, [x29, #-56] - ldr w8, [x8] - cmp w8, #1 - b.ge .LBB16_478 -.LBB16_102: - str wzr, [x19, #304] - b .LBB16_432 .LBB16_103: - ldr w8, [x19, #788] - cbz w8, .LBB16_110 - ldr w8, [x19, #784] - cbz w8, .LBB16_110 + ldr w2, [x19, #304] + cbz w2, .LBB16_303 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_476 + b.ge .LBB16_515 +.LBB16_105: + str wzr, [x19, #304] + b .LBB16_315 .LBB16_106: + ldr w8, [x19, #788] + cbz w8, .LBB16_146 + ldr w8, [x19, #784] + cbz w8, .LBB16_146 + ldur x8, [x29, #-56] + ldr w8, [x8] + cmp w8, #1 + b.ge .LBB16_513 +.LBB16_109: ldr w8, [x19, #260] ldr x1, [x19, #384] cmp w8, #1 - b.lt .LBB16_435 + b.lt .LBB16_318 ldr x9, [x19, #448] ldr x9, [x9, #16] -.LBB16_108: +.LBB16_111: ldrb w10, [x9], #1 ldrb w11, [x1] mvn w12, w10 @@ -3996,621 +4413,56 @@ ebc_thread: csel w10, w10, w12, eq subs x8, x8, #1 strb w10, [x1], #1 - b.ne .LBB16_108 + b.ne .LBB16_111 ldr x1, [x19, #384] ldr w8, [x19, #260] - b .LBB16_436 -.LBB16_110: - ldr x8, [x19, #440] - ldr x0, [x19, #376] - ldrsw x2, [x19, #260] - ldr x1, [x8, #16] - bl memcpy - ldr x8, [x19, #448] - ldr x0, [x19, #368] - ldrsw x2, [x19, #260] - ldr x1, [x8, #16] - bl memcpy -.LBB16_111: - mov w8, #4 - str x20, [x19, #464] - ldr w9, [x19, #316] - str w8, [x19, #472] - ldp w10, w8, [x20, #48] - ldp w12, w14, [x20, #56] - add w11, w10, #7 - cmp w10, #0 - add w13, w12, #7 - csel w11, w11, w10, lt - cmp w12, #0 - add w10, w9, #7 - csel w12, w13, w12, lt - cmp w9, #0 - asr w15, w12, #3 - csel w13, w10, w9, lt - ldr w10, [x19, #312] - add w9, w15, #1 - asr w12, w13, #3 - sub w16, w12, #1 - cmp w9, w12 - csinc w17, w16, w15, ge - sub w15, w10, #1 - cmp w14, w10 - mov x10, #255086697644032 - csel w9, w14, w15, lt - cmp w8, w9 - stp w9, w17, [sp, #60] - b.le .LBB16_116 -.LBB16_112: - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_238 - adrp x8, ebc_auto_task - ldr x0, [x8, :lo12:ebc_auto_task] - bl wake_up_process - ldr x0, [x19, #456] - cbz x0, .LBB16_115 -.LBB16_114: - bl ebc_buf_release -.LBB16_115: - ldr x8, [x19, #464] - str x8, [x19, #456] - b .LBB16_3 -.LBB16_116: - asr w9, w11, #3 - ldr x14, [x19, #448] - mul w12, w12, w8 - ldr x11, [x20, #16] - ldp x16, x15, [x19, #392] - str x9, [sp, #48] - sxtw x9, w9 - ldr x17, [x14, #16] - sxtw x14, w12 - ldp x1, x12, [x19, #368] - str x9, [sp, #40] - lsl x0, x14, #3 - ldr w9, [sp, #64] - sbfx x2, x13, #3, #29 - add x14, x16, x0 - add x16, x11, x0 - add x13, x15, x0 - add x15, x17, x0 - add w11, w9, #1 - add x17, x1, x0 - sxtw x1, w11 - lsl x2, x2, #3 - b .LBB16_118 -.LBB16_117: - ldr w9, [sp, #60] - add w8, w8, #1 - add x13, x13, x2 - add x14, x14, x2 - add x15, x15, x2 - add x16, x16, x2 - add x17, x17, x2 - cmp w8, w9 - b.gt .LBB16_112 -.LBB16_118: - ldr w9, [sp, #64] - ldr x11, [sp, #48] - cmp w11, w9 - b.gt .LBB16_117 - ldr x3, [sp, #40] - b .LBB16_123 -.LBB16_120: - and x6, x6, #0xffffffffffffff - lsr x9, x30, #60 - cmp x9, #15 - b.lo .LBB16_191 -.LBB16_121: - lsr x9, x7, #59 - orr x11, x6, #0x100000000000000 - cmp x9, #29 - orr x21, x21, #0xf800000000000000 - csel x6, x11, x6, hi -.LBB16_122: - bic x9, x20, x21 - and x11, x21, x7 - add x3, x3, #1 - orr x9, x9, x11 - cmp x1, x3 - str x6, [x13, x4] - str x9, [x17, x4] - str x5, [x14, x4] - b.eq .LBB16_117 -.LBB16_123: - lsl x4, x3, #3 - ldr x5, [x14, x4] - ldr x20, [x17, x4] - ldr x0, [x12, x4] - ldr x30, [x16, x4] - ldr x7, [x15, x4] - tst x5, #0xff - ldr x6, [x13, x4] - b.eq .LBB16_130 - mvn w11, w0 - tst x11, #0xf0 - cset w21, ne - tst x11, x24 - cset w11, ne - and w21, w21, w11 - and x11, x30, #0xff - tbnz w21, #0, .LBB16_127 - and x21, x20, #0xf0 - cmp x21, #240 - b.ne .LBB16_127 - cbz x11, .LBB16_130 -.LBB16_127: - mov x21, xzr - tst x0, #0xff - b.ne .LBB16_132 - and x9, x20, x24 - cmp x9, #232 - b.ne .LBB16_132 - cmp x11, #240 - b.ne .LBB16_132 -.LBB16_130: - and x6, x6, #0xffffffffffffff00 - and x5, x5, #0xffffffffffffff00 - and x11, x30, #0xf0 - cmp w11, #240 - b.ne .LBB16_203 - mvn w9, w7 - mov w21, #248 - tst x9, #0xf0 - cset w9, eq - orr x6, x6, x9 -.LBB16_132: - tst x5, #0xff00 - b.eq .LBB16_139 - mvn w9, w0 - tst x9, #0xf000 - cset w11, ne - tst x9, x23 - cset w9, ne - and w9, w11, w9 - and x11, x30, #0xff00 - tbnz w9, #0, .LBB16_136 - and x9, x20, #0xf000 - cmp x9, #15, lsl #12 - b.ne .LBB16_136 - cbz x11, .LBB16_139 -.LBB16_136: - tst x0, #0xff00 - b.ne .LBB16_141 - mov w24, #59392 - mov w23, #59392 - and x9, x20, x24 - cmp x9, x24 - b.ne .LBB16_200 - mov w24, #232 - cmp x11, #15, lsl #12 - b.ne .LBB16_141 -.LBB16_139: - and x6, x6, #0xffffffffffff00ff - and x5, x5, #0xffffffffffff00ff - and x11, x30, #0xf000 - cmp w11, #15, lsl #12 - b.ne .LBB16_205 - mvn w9, w7 - orr x11, x6, #0x100 - tst x9, #0xf000 - orr x21, x21, #0xf800 - csel x6, x11, x6, eq -.LBB16_141: - tst x5, #0xff0000 - b.eq .LBB16_148 - mvn w9, w0 - mov w22, #15204352 - tst x9, #0xf00000 - cset w11, ne - tst x9, x22 - cset w9, ne - mov w22, #-268435456 - and w9, w11, w9 - and x11, x30, #0xff0000 - tbnz w9, #0, .LBB16_145 - and x9, x20, #0xf00000 - cmp x9, #3840, lsl #12 - b.ne .LBB16_145 - cbz x11, .LBB16_148 -.LBB16_145: - tst x0, #0xff0000 - b.ne .LBB16_150 - mov w9, #15204352 - and x9, x20, x9 - cmp x9, #3712, lsl #12 - b.ne .LBB16_150 - cmp x11, #3840, lsl #12 - b.ne .LBB16_150 -.LBB16_148: - and x6, x6, #0xffffffffff00ffff - and x5, x5, #0xffffffffff00ffff - and x11, x30, #0xf00000 - cmp x11, #3840, lsl #12 - b.ne .LBB16_207 - mvn w9, w7 - orr x11, x6, #0x10000 - tst x9, #0xf00000 - orr x21, x21, #0xf80000 - csel x6, x11, x6, eq -.LBB16_150: - tst x5, #0xff000000 - b.eq .LBB16_157 - mvn w9, w0 - tst x9, #0xf0000000 - cset w11, ne - tst x9, x27 - cset w9, ne - and w9, w11, w9 - and x11, x30, #0xff000000 - tbnz w9, #0, .LBB16_154 - and x9, x20, #0xf0000000 - cmp x9, x22 - b.ne .LBB16_154 - cbz x11, .LBB16_157 -.LBB16_154: - tst x0, #0xff000000 - b.ne .LBB16_159 - and x9, x20, x27 - cmp x9, x27 - b.ne .LBB16_159 - cmp x11, x22 - b.ne .LBB16_159 -.LBB16_157: - and x6, x6, #0xffffffff00ffffff - and x5, x5, #0xffffffff00ffffff - and x11, x30, #0xf0000000 - cmp w11, w22 - b.ne .LBB16_209 - mvn w9, w7 - orr x11, x6, #0x1000000 - tst x9, #0xf0000000 - orr x21, x21, #0xf8000000 - csel x6, x11, x6, eq -.LBB16_159: - tst x5, #0xff00000000 - b.eq .LBB16_166 - bics xzr, x26, x0 - mov x11, #996432412672 - cset w9, ne - bics xzr, x11, x0 - cset w11, ne - and w9, w9, w11 - and x11, x30, #0xff00000000 - tbnz w9, #0, .LBB16_163 - and x9, x20, #0xf000000000 - cmp x9, x26 - b.ne .LBB16_163 - cbz x11, .LBB16_166 -.LBB16_163: - tst x0, #0xff00000000 - b.ne .LBB16_168 - mov x27, #996432412672 - and x9, x20, x27 - cmp x9, x27 - b.ne .LBB16_201 - mov w27, #-402653184 - cmp x11, x26 - b.ne .LBB16_168 -.LBB16_166: - and x6, x6, #0xffffff00ffffffff - and x5, x5, #0xffffff00ffffffff - and x11, x30, #0xf000000000 - cmp x11, x26 - b.ne .LBB16_211 - orr x9, x6, #0x100000000 - bics xzr, x26, x7 - orr x21, x21, #0xf800000000 - csel x6, x9, x6, eq -.LBB16_168: - tst x5, #0xff0000000000 - b.eq .LBB16_175 - bics xzr, x25, x0 - cset w9, ne - bics xzr, x10, x0 - cset w11, ne - and w9, w9, w11 - and x11, x30, #0xff0000000000 - tbnz w9, #0, .LBB16_172 - and x9, x20, #0xf00000000000 - cmp x9, x25 - b.ne .LBB16_172 - cbz x11, .LBB16_175 -.LBB16_172: - tst x0, #0xff0000000000 - b.ne .LBB16_177 - and x9, x20, x10 - cmp x9, x10 - b.ne .LBB16_177 - cmp x11, x25 - b.ne .LBB16_177 -.LBB16_175: - and x6, x6, #0xffff00ffffffffff - and x5, x5, #0xffff00ffffffffff - and x11, x30, #0xf00000000000 - cmp x11, x25 - b.ne .LBB16_213 - orr x9, x6, #0x10000000000 - bics xzr, x25, x7 - orr x21, x21, #0xf80000000000 - csel x6, x9, x6, eq -.LBB16_177: - tst x5, #0xff000000000000 - b.eq .LBB16_184 - bics xzr, x28, x0 - mov x11, #65302194596872192 - cset w9, ne - bics xzr, x11, x0 - cset w11, ne - and w9, w9, w11 - and x11, x30, #0xff000000000000 - tbnz w9, #0, .LBB16_181 - and x9, x20, #0xf0000000000000 - cmp x9, x28 - b.ne .LBB16_181 - cbz x11, .LBB16_184 -.LBB16_181: - tst x0, #0xff000000000000 - b.ne .LBB16_186 - mov x10, #65302194596872192 - and x9, x20, x10 - cmp x9, x10 - b.ne .LBB16_202 - mov x10, #255086697644032 - cmp x11, x28 - b.ne .LBB16_186 -.LBB16_184: - and x6, x6, #0xff00ffffffffffff - and x5, x5, #0xff00ffffffffffff - and x11, x30, #0xf0000000000000 - cmp x11, x28 - b.ne .LBB16_215 - orr x9, x6, #0x1000000000000 - bics xzr, x28, x7 - orr x21, x21, #0xf8000000000000 - csel x6, x9, x6, eq -.LBB16_186: - lsr x9, x5, #56 - cbz x9, .LBB16_120 - lsr x9, x0, #60 - mov x11, #-1729382256910270464 - cmp x9, #15 - cset w9, lo - bics xzr, x11, x0 - cset w11, ne - and w9, w9, w11 - tbnz w9, #0, .LBB16_194 - lsr x9, x20, #60 - cmp x9, #15 - b.lo .LBB16_194 - lsr x9, x30, #56 - cbnz x9, .LBB16_194 - and x6, x6, #0xffffffffffffff - and x5, x5, #0xffffffffffffff -.LBB16_191: - and x11, x30, #0xf000000000000000 - mov x9, #-2305843009213693952 - cmp x11, x9 - b.eq .LBB16_198 - cbnz x11, .LBB16_199 - and x20, x20, #0xffffffffffffff - orr x6, x6, #0x100000000000000 - b .LBB16_122 -.LBB16_194: - lsr x9, x0, #56 - cbnz x9, .LBB16_122 - mov x11, #-1729382256910270464 - and x9, x20, x11 - cmp x9, x11 - b.ne .LBB16_122 - and x9, x30, #0xff00000000000000 - mov x11, #-1152921504606846976 - cmp x9, x11 - b.ne .LBB16_122 - and x6, x6, #0xffffffffffffff - and x5, x5, #0xffffffffffffff - b .LBB16_121 -.LBB16_198: - mov x9, #-1152921504606846976 - orr x6, x6, #0x100000000000000 - bfxil x9, x20, #0, #56 - mov x20, x9 - b .LBB16_122 -.LBB16_199: - and x9, x20, #0xffffffffffffff - orr x20, x9, x11 - b .LBB16_122 -.LBB16_200: - mov w24, #232 - b .LBB16_141 -.LBB16_201: - mov w27, #-402653184 - b .LBB16_168 -.LBB16_202: - mov x10, #255086697644032 - b .LBB16_186 -.LBB16_203: - cbnz w11, .LBB16_217 - mov x21, xzr - and x20, x20, #0xffffffffffffff00 - orr x6, x6, #0x1 - b .LBB16_132 -.LBB16_205: - cbnz w11, .LBB16_219 - and x20, x20, #0xffffffffffff00ff - orr x6, x6, #0x100 - b .LBB16_141 -.LBB16_207: - cbnz x11, .LBB16_221 - and x20, x20, #0xffffffffff00ffff - orr x6, x6, #0x10000 - b .LBB16_150 -.LBB16_209: - cbnz w11, .LBB16_223 - and x20, x20, #0xffffffff00ffffff - orr x6, x6, #0x1000000 - b .LBB16_159 -.LBB16_211: - cbnz x11, .LBB16_225 - and x20, x20, #0xffffff00ffffffff - orr x6, x6, #0x100000000 - b .LBB16_168 -.LBB16_213: - cbnz x11, .LBB16_227 - and x20, x20, #0xffff00ffffffffff - orr x6, x6, #0x10000000000 - b .LBB16_177 -.LBB16_215: - cbnz x11, .LBB16_229 - and x20, x20, #0xff00ffffffffffff - orr x6, x6, #0x1000000000000 - b .LBB16_186 -.LBB16_217: - cmp w11, #224 - b.ne .LBB16_231 - and x9, x20, #0xffffffffffffff00 - mov x21, xzr - orr x20, x9, #0xf0 - orr x6, x6, #0x1 - b .LBB16_132 -.LBB16_219: - and x9, x20, #0xffffffffffff00ff - cmp w11, #14, lsl #12 - b.ne .LBB16_232 - orr x20, x9, #0xf000 - orr x6, x6, #0x100 - b .LBB16_141 -.LBB16_221: - and x9, x20, #0xffffffffff00ffff - cmp x11, #3584, lsl #12 - b.ne .LBB16_233 - orr x20, x9, #0xf00000 - orr x6, x6, #0x10000 - b .LBB16_150 -.LBB16_223: - mov w9, #-536870912 - cmp w11, w9 - b.ne .LBB16_234 - and x9, x20, #0xffffffff00ffffff - orr x6, x6, #0x1000000 - orr x20, x9, #0xf0000000 - b .LBB16_159 -.LBB16_225: - mov x9, #962072674304 - cmp x11, x9 - b.ne .LBB16_235 - and x9, x20, #0xffffff00ffffffff - orr x6, x6, #0x100000000 - orr x20, x9, #0xf000000000 - b .LBB16_168 -.LBB16_227: - mov x9, #246290604621824 - cmp x11, x9 - b.ne .LBB16_236 - and x9, x20, #0xffff00ffffffffff - orr x6, x6, #0x10000000000 - orr x20, x9, #0xf00000000000 - b .LBB16_177 -.LBB16_229: - mov x9, #63050394783186944 - cmp x11, x9 - b.ne .LBB16_237 - and x9, x20, #0xff00ffffffffffff - orr x6, x6, #0x1000000000000 - orr x20, x9, #0xf0000000000000 - b .LBB16_186 -.LBB16_231: - and x9, x20, #0xffffffffffffff00 - mov x21, xzr - orr x20, x11, x9 - b .LBB16_132 -.LBB16_232: - orr x20, x9, x11 - b .LBB16_141 -.LBB16_233: - orr x20, x9, x11 - b .LBB16_150 -.LBB16_234: - and x9, x20, #0xffffffff00ffffff - orr x20, x9, x11 - b .LBB16_159 -.LBB16_235: - and x9, x20, #0xffffff00ffffffff - orr x20, x9, x11 - b .LBB16_168 -.LBB16_236: - and x9, x20, #0xffff00ffffffffff - orr x20, x9, x11 - b .LBB16_177 -.LBB16_237: - and x9, x20, #0xff00ffffffffffff - orr x20, x9, x11 - b .LBB16_186 -.LBB16_238: - mov w8, #1 - mov x0, x19 - mov w1, #1 - mov w2, wzr - str w8, [x19, #284] - bl ebc_lut_update - ldr w9, [x19, #812] - ldr w8, [x19, #336] - cmp w9, #1 - strh w8, [x19, #288] - b.ge .LBB16_438 -.LBB16_239: - mov x0, x19 - bl ebc_frame_start - ldr x0, [x19, #456] - cbnz x0, .LBB16_114 - b .LBB16_115 -.LBB16_240: + b .LBB16_319 +.LBB16_113: bl ebc_get_dsp_list_enum_num cbnz w0, .LBB16_3 bl ebc_get_osd_list_enum_num cbnz w0, .LBB16_3 -.LBB16_242: +.LBB16_115: mov x0, x19 mov w1, wzr bl ebc_power_set ldr w8, [x19, #320] cbnz w8, .LBB16_20 -.LBB16_243: +.LBB16_116: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_244: +.LBB16_117: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #320] - cbnz w8, .LBB16_448 + cbnz w8, .LBB16_485 cbnz x0, .LBB16_20 bl schedule - b .LBB16_244 -.LBB16_247: + b .LBB16_117 +.LBB16_120: ldr w8, [x19, #788] - cbz w8, .LBB16_254 + cbz w8, .LBB16_127 ldr w8, [x19, #784] - cbz w8, .LBB16_254 + cbz w8, .LBB16_127 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_479 -.LBB16_250: + b.ge .LBB16_516 +.LBB16_123: ldr w8, [x19, #260] ldr x1, [x19, #384] cmp w8, #1 - b.lt .LBB16_439 + b.lt .LBB16_476 ldr x9, [x19, #448] ldr x9, [x9, #16] -.LBB16_252: +.LBB16_125: ldrb w10, [x9], #1 ldrb w11, [x1] mvn w12, w10 @@ -4619,11 +4471,11 @@ ebc_thread: csel w10, w10, w12, eq subs x8, x8, #1 strb w10, [x1], #1 - b.ne .LBB16_252 + b.ne .LBB16_125 ldr x1, [x19, #384] ldr w8, [x19, #260] - b .LBB16_440 -.LBB16_254: + b .LBB16_477 +.LBB16_127: ldr x8, [x19, #440] ldr x0, [x19, #376] ldrsw x2, [x19, #260] @@ -4634,10 +4486,11 @@ ebc_thread: ldrsw x2, [x19, #260] ldr x1, [x8, #16] bl memcpy -.LBB16_255: +.LBB16_128: mov w8, #4 ldr x20, [sp, #64] ldp x0, x1, [x19, #368] + mov w7, wzr ldp x4, x5, [x19, #392] str w8, [x19, #472] str x20, [x19, #448] @@ -4646,230 +4499,274 @@ ebc_thread: ldr x6, [sp, #24] bl refresh_new_image ldr w8, [x19, #284] - cbz w8, .LBB16_259 + cbz w8, .LBB16_132 ldr x8, [x19, #440] ldr w1, [x20, #40] ldr w8, [x8, #40] cmp w1, w8 - b.ne .LBB16_264 - ldur x8, [x29, #-56] + b.ne .LBB16_134 + ldp x8, x9, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.lt .LBB16_386 + b.lt .LBB16_269 ldr x8, [x19, #448] - adrp x1, .L.str.83 + adrp x1, .L.str.86 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.83 + add x1, x1, :lo12:.L.str.86 ldrb w3, [x19, #288] ldr w2, [x8, #40] - b .LBB16_266 -.LBB16_259: - mov w8, #1 + b .LBB16_136 +.LBB16_132: + ldr w8, [x19, #304] + str w23, [x19, #284] + cbz w8, .LBB16_137 + str wzr, [x19, #304] + b .LBB16_138 +.LBB16_134: mov x0, x19 mov w2, wzr - str w8, [x19, #284] - ldr w1, [x20, #40] bl ebc_lut_update + ldr w9, [x19, #812] + ldr w8, [x19, #336] + cmp w9, #1 + ldur x9, [x29, #-48] + strb w8, [x19, #288] + b.lt .LBB16_269 + ldr x9, [x19, #448] + adrp x1, .L.str.85 + ldr x0, [x19, #328] + and w3, w8, #0xff + add x1, x1, :lo12:.L.str.85 + ldr w2, [x9, #40] +.LBB16_136: + bl _dev_info + b .LBB16_268 +.LBB16_137: + ldr x8, [sp, #64] + mov x0, x19 + mov w2, wzr + ldr w1, [x8, #40] + bl ebc_lut_update +.LBB16_138: ldr w9, [x19, #812] ldr w8, [x19, #336] cmp w9, #1 strh w8, [x19, #288] - b.ge .LBB16_441 -.LBB16_260: + b.ge .LBB16_478 +.LBB16_139: ldp x4, x0, [x19, #400] ldp x1, x2, [x19, #368] ldr w8, [x19, #204] ldr x3, [x19, #392] - cbz w8, .LBB16_267 + cbz w8, .LBB16_143 ldr x5, [sp, #24] mov w6, #1 bl get_overlay_image2 ldr w8, [x19, #292] - cbz w8, .LBB16_268 -.LBB16_262: + cbz w8, .LBB16_144 +.LBB16_141: ldp x1, x2, [x19, #368] ldp x3, x4, [x19, #392] ldr w8, [x19, #204] ldr x0, [x19, #416] - cbz w8, .LBB16_384 + cbz w8, .LBB16_266 ldr x20, [sp, #24] mov w6, #1 mov x5, x20 bl get_overlay_image2 - b .LBB16_385 -.LBB16_264: - mov x0, x19 - mov w2, wzr - bl ebc_lut_update - ldr w9, [x19, #812] - ldr w8, [x19, #336] - cmp w9, #1 - strb w8, [x19, #288] - b.lt .LBB16_386 - ldr x9, [x19, #448] - adrp x1, .L.str.82 - ldr x0, [x19, #328] - and w3, w8, #0xff - add x1, x1, :lo12:.L.str.82 - ldr w2, [x9, #40] -.LBB16_266: - bl _dev_info - b .LBB16_386 -.LBB16_267: + b .LBB16_267 +.LBB16_143: ldr x5, [sp, #24] mov w6, #1 bl get_overlay_image ldr w8, [x19, #292] - cbnz w8, .LBB16_262 -.LBB16_268: + cbnz w8, .LBB16_141 +.LBB16_144: ldr w8, [x19, #812] str wzr, [x19, #284] + ldur x9, [x29, #-48] + str w23, [x19, #772] cmp w8, #1 - mov w8, #1 - str w8, [x19, #772] - b.lt .LBB16_386 + b.lt .LBB16_269 ldr x8, [sp, #16] - adrp x1, .L.str.112 + adrp x1, .L.str.116 adrp x2, .L__func__.ebc_overlay_bg_frame_start - add x1, x1, :lo12:.L.str.112 + add x1, x1, :lo12:.L.str.116 add x2, x2, :lo12:.L__func__.ebc_overlay_bg_frame_start ldr x0, [x8] bl _dev_info - b .LBB16_386 -.LBB16_270: + b .LBB16_268 +.LBB16_146: + ldur x8, [x29, #-56] + ldr w8, [x8] + cmp w8, #1 + b.ge .LBB16_498 +.LBB16_147: + ldr x8, [x19, #440] + ldr x0, [x19, #376] + ldrsw x2, [x19, #260] + ldr x1, [x8, #16] + bl memcpy + ldr x8, [x19, #448] + ldr x0, [x19, #368] + ldrsw x2, [x19, #260] + ldr w9, [x8, #40] + ldr x1, [x8, #16] + sub w8, w9, #2 + cmp w8, #9 + b.hi .LBB16_151 + add w8, w2, #7 + cmp w8, #15 + b.lo .LBB16_326 + add w8, w2, #7 + cmp w2, #0 + csel w8, w8, w2, lt + asr w8, w8, #3 + sub w8, w8, #1 +.LBB16_150: + sbfiz x9, x8, #3, #32 + sub w8, w8, #1 + cmn w8, #1 + ldr x10, [x1, x9] + and x10, x10, #0xf8f8f8f8f8f8f8f8 + str x10, [x0, x9] + b.ne .LBB16_150 + b .LBB16_326 +.LBB16_151: + bl memcpy + b .LBB16_326 +.LBB16_152: ldr w8, [x19, #796] - cbz w8, .LBB16_414 + cbz w8, .LBB16_297 ldr x8, [x19, #440] ldr x1, [x8, #16] ldr w8, [x19, #260] -.LBB16_272: +.LBB16_154: ldr x0, [x19, #376] sxtw x2, w8 -.LBB16_273: +.LBB16_155: bl memcpy ldr w8, [x19, #796] - cbnz w8, .LBB16_275 + cbnz w8, .LBB16_157 ldr x0, [x19, #384] mov w1, wzr ldrsw x2, [x19, #260] bl memset -.LBB16_275: - mov w8, #1 - mov w20, #5 - str w8, [x19, #796] - b .LBB16_278 -.LBB16_276: +.LBB16_157: + mov w21, #5 + str w23, [x19, #796] + b .LBB16_160 +.LBB16_158: mov w8, #9 ldr x9, [sp, #64] str w8, [x9, #40] -.LBB16_277: +.LBB16_159: str wzr, [x19, #796] str wzr, [x19, #784] -.LBB16_278: +.LBB16_160: ldr x8, [sp, #64] - cmp w20, #2 + cmp w21, #2 cset w2, eq mov x0, x19 - str w20, [sp, #60] + str w21, [sp, #60] str x8, [x19, #448] mov x20, x8 ldr w1, [x8, #40] bl ebc_lut_update ldr w8, [x20, #40] cmp w8, #12 - b.eq .LBB16_281 + b.eq .LBB16_163 cmp w8, #13 - b.eq .LBB16_283 + b.eq .LBB16_165 cmp w8, #14 - b.ne .LBB16_286 -.LBB16_281: + b.ne .LBB16_168 +.LBB16_163: ldr w8, [x19, #788] - cbz w8, .LBB16_287 + cbz w8, .LBB16_169 ldrb w8, [x19, #336] lsr w9, w8, #1 mov w8, #1 strb w9, [x19, #288] mov w9, #2 - b .LBB16_285 -.LBB16_283: + b .LBB16_167 +.LBB16_165: ldr w8, [x19, #788] - cbz w8, .LBB16_287 + cbz w8, .LBB16_169 ldrb w8, [x19, #336] mov w10, #2 lsr w9, w8, #1 mov w8, #1 strb w10, [x19, #288] -.LBB16_285: +.LBB16_167: strb w9, [x19, #880] - cbnz w8, .LBB16_288 - b .LBB16_298 -.LBB16_286: + cbnz w8, .LBB16_170 + b .LBB16_180 +.LBB16_168: ldr w8, [x19, #788] -.LBB16_287: +.LBB16_169: ldr w9, [x19, #336] strb w9, [x19, #288] - cbz w8, .LBB16_298 -.LBB16_288: + cbz w8, .LBB16_180 +.LBB16_170: ldr x8, [sp, #64] ldr w8, [x8, #40] sub w8, w8, #12 cmp w8, #2 - b.hi .LBB16_298 + b.hi .LBB16_180 ldr x8, [x19, #440] ldr w8, [x8, #40] sub w8, w8, #12 cmp w8, #3 - b.lo .LBB16_298 + b.lo .LBB16_180 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_452 -.LBB16_291: + b.ge .LBB16_488 +.LBB16_173: ldr x0, [x19, #368] mov w1, wzr ldrsw x2, [x19, #260] bl memset ldr w8, [x19, #260] cmp w8, #1 - b.lt .LBB16_298 + b.lt .LBB16_180 ldr x10, [x19, #440] ldr x9, [x19, #368] ldrb w11, [x19, #880] ldr x10, [x10, #16] - b .LBB16_294 -.LBB16_293: + b .LBB16_176 +.LBB16_175: add x9, x9, #1 subs x8, x8, #1 add x10, x10, #1 - b.eq .LBB16_298 -.LBB16_294: + b.eq .LBB16_180 +.LBB16_176: ldrb w12, [x10] cmp w12, #240 - b.ne .LBB16_293 + b.ne .LBB16_175 strb w11, [x9] - b .LBB16_293 -.LBB16_296: + b .LBB16_175 +.LBB16_178: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #0 - b.gt .LBB16_354 -.LBB16_297: + b.gt .LBB16_236 +.LBB16_179: ldr x8, [x19, #440] ldr x1, [x19, #376] ldrsw x2, [x19, #260] ldr x0, [x8, #16] bl memcpy -.LBB16_298: +.LBB16_180: ldur x8, [x29, #-56] - ldr w9, [sp, #60] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_352 -.LBB16_299: - mov w8, #1 + ldr w8, [sp, #60] + b.ge .LBB16_234 +.LBB16_181: mov x0, x19 - str w9, [x19, #472] - str w8, [x19, #284] + str w23, [x19, #284] + str w8, [x19, #472] bl ebc_frame_start adrp x8, jiffies ldr x8, [x8, :lo12:jiffies] @@ -4877,25 +4774,25 @@ ebc_thread: add x1, x8, #750 bl mod_timer ldr w8, [x19, #788] - cbz w8, .LBB16_326 + cbz w8, .LBB16_208 ldr x8, [sp, #64] ldr w8, [x8, #40] sub w8, w8, #12 cmp w8, #2 - b.hi .LBB16_326 + b.hi .LBB16_208 ldr w8, [x19, #796] - cbz w8, .LBB16_326 + cbz w8, .LBB16_208 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_357 -.LBB16_303: + b.ge .LBB16_239 +.LBB16_185: ldr w8, [x19, #792] ldr w9, [x19, #312] cmp w8, #0 cset w10, ne cmp w9, #1 - b.lt .LBB16_324 + b.lt .LBB16_206 ldr x16, [x19, #448] mov w11, wzr ldrsb w15, [x19, #880] @@ -4906,56 +4803,55 @@ ebc_thread: neg w1, w15 ldr x16, [x16, #16] ldr x2, [x19, #368] - b .LBB16_306 -.LBB16_305: + b .LBB16_188 +.LBB16_187: add w12, w12, #1 add w11, w11, w13 cmp w12, w9 - b.eq .LBB16_325 -.LBB16_306: + b.eq .LBB16_207 +.LBB16_188: cmp w13, #1 - b.lt .LBB16_305 + b.lt .LBB16_187 mov w4, w11 mov x3, x13 - b .LBB16_309 -.LBB16_308: + b .LBB16_191 +.LBB16_190: subs x3, x3, #1 add w4, w4, #1 - b.eq .LBB16_305 -.LBB16_309: + b.eq .LBB16_187 +.LBB16_191: sxtw x4, w4 ldrb w6, [x16, x4] ldrb w21, [x0, x4] cmp w21, w6 - b.eq .LBB16_308 - cbz w8, .LBB16_312 + b.eq .LBB16_190 + cbz w8, .LBB16_194 ldrb w5, [x2, x4] - b .LBB16_313 -.LBB16_312: + b .LBB16_195 +.LBB16_194: mov w5, wzr -.LBB16_313: +.LBB16_195: ldrsb w7, [x17, x4] and w30, w21, #0xf cmp w6, #240 - b.ne .LBB16_318 + b.ne .LBB16_200 cmp w7, #0 - mov w6, #1 add w5, w5, w10 - csinc w6, w6, w7, lt + csinc w6, w23, w7, lt sxtb w5, w5 sxtb w7, w6 mov w6, #240 cmp w7, w15 - b.ge .LBB16_322 + b.ge .LBB16_204 cmp w5, w15 - b.ge .LBB16_322 - cbz w30, .LBB16_321 -.LBB16_317: + b.ge .LBB16_204 + cbz w30, .LBB16_203 +.LBB16_199: mov w14, #1 strb w7, [x17, x4] - cbnz w8, .LBB16_323 - b .LBB16_308 -.LBB16_318: + cbnz w8, .LBB16_205 + b .LBB16_190 +.LBB16_200: sub w5, w5, #1 cmp w8, #0 csel w5, w15, w5, eq @@ -4964,40 +4860,40 @@ ebc_thread: sxtb w5, w5 csinv w7, w20, wzr, le cmp w1, w7, sxtb - b.ge .LBB16_322 + b.ge .LBB16_204 cmp w5, #1 - b.lt .LBB16_322 - cbnz w30, .LBB16_317 -.LBB16_321: + b.lt .LBB16_204 + cbnz w30, .LBB16_199 +.LBB16_203: orr w6, w21, #0x1 mov w14, #1 -.LBB16_322: +.LBB16_204: strb w6, [x0, x4] strb w7, [x17, x4] - cbz w8, .LBB16_308 -.LBB16_323: + cbz w8, .LBB16_190 +.LBB16_205: strb w5, [x2, x4] - b .LBB16_308 -.LBB16_324: + b .LBB16_190 +.LBB16_206: mov w14, wzr -.LBB16_325: +.LBB16_207: str w14, [x19, #784] -.LBB16_326: +.LBB16_208: ldur x8, [x29, #-48] ldr w9, [x8] ldur x8, [x29, #-56] ldr w8, [x8] - cbz w9, .LBB16_333 + cbz w9, .LBB16_215 cmp w8, #1 - b.ge .LBB16_353 -.LBB16_328: + b.ge .LBB16_235 +.LBB16_210: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_329: +.LBB16_211: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -5005,40 +4901,40 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_332 - cbnz x0, .LBB16_334 + cbz w8, .LBB16_214 + cbnz x0, .LBB16_216 bl schedule - b .LBB16_329 -.LBB16_332: + b .LBB16_211 +.LBB16_214: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait - b .LBB16_334 -.LBB16_333: - tbz w8, #31, .LBB16_356 -.LBB16_334: + b .LBB16_216 +.LBB16_215: + tbz w8, #31, .LBB16_238 +.LBB16_216: ldr w8, [x19, #304] - cbnz w8, .LBB16_358 + cbnz w8, .LBB16_240 ldr w8, [x19, #788] - cbz w8, .LBB16_467 + cbz w8, .LBB16_504 ldr x8, [sp, #64] ldr w8, [x8, #40] sub w8, w8, #12 cmp w8, #2 - b.hi .LBB16_467 + b.hi .LBB16_504 ldr w8, [x19, #784] - cbz w8, .LBB16_364 + cbz w8, .LBB16_246 bl ebc_get_dsp_list_enum_num - cbz w0, .LBB16_341 + cbz w0, .LBB16_223 bl ebc_dsp_buf_next_mode ldr w8, [x19, #788] - cbz w8, .LBB16_296 + cbz w8, .LBB16_178 sub w8, w0, #12 cmp w8, #3 - b.hs .LBB16_296 - b .LBB16_467 -.LBB16_341: + b.hs .LBB16_178 + b .LBB16_504 +.LBB16_223: sub x0, x29, #40 mov w1, wzr str wzr, [x19, #320] @@ -5052,33 +4948,33 @@ ebc_thread: mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #320] - cbz w8, .LBB16_348 -.LBB16_342: + cbz w8, .LBB16_230 +.LBB16_224: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_343: +.LBB16_225: bl ebc_get_dsp_list_enum_num - cbz w0, .LBB16_346 + cbz w0, .LBB16_228 bl ebc_dsp_buf_next_mode ldr w8, [x19, #788] - cbz w8, .LBB16_346 + cbz w8, .LBB16_228 sub w8, w0, #12 cmp w8, #3 - b.lo .LBB16_467 -.LBB16_346: + b.lo .LBB16_504 +.LBB16_228: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.lt .LBB16_297 - adrp x1, .L.str.97 - add x1, x1, :lo12:.L.str.97 - b .LBB16_355 -.LBB16_348: + b.lt .LBB16_179 + adrp x1, .L.str.100 + add x1, x1, :lo12:.L.str.100 + b .LBB16_237 +.LBB16_230: mov w8, #3 -.LBB16_349: - cbnz x0, .LBB16_343 +.LBB16_231: + cbnz x0, .LBB16_225 mov x0, x8 bl schedule_timeout mov x21, x0 @@ -5091,58 +4987,58 @@ ebc_thread: cmp x21, #0 ccmp w9, #0, #4, eq csinc x8, x21, xzr, eq - cbnz w9, .LBB16_342 - cbnz x8, .LBB16_349 - b .LBB16_342 -.LBB16_352: + cbnz w9, .LBB16_224 + cbnz x8, .LBB16_231 + b .LBB16_224 +.LBB16_234: ldr x8, [x19, #448] - adrp x1, .L.str.92 + adrp x1, .L.str.95 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.92 + add x1, x1, :lo12:.L.str.95 ldrb w3, [x19, #288] ldr w2, [x8, #40] ldrb w4, [x19, #336] bl _dev_info - ldr w9, [sp, #60] - b .LBB16_299 -.LBB16_353: + ldr w8, [sp, #60] + b .LBB16_181 +.LBB16_235: ldr x8, [sp, #16] - adrp x1, .L.str.94 - add x1, x1, :lo12:.L.str.94 + adrp x1, .L.str.97 + add x1, x1, :lo12:.L.str.97 ldr x0, [x8] bl _dev_info ldur x8, [x29, #-48] ldr w8, [x8] - cbnz w8, .LBB16_328 - b .LBB16_334 -.LBB16_354: + cbnz w8, .LBB16_210 + b .LBB16_216 +.LBB16_236: + adrp x1, .L.str.101 + add x1, x1, :lo12:.L.str.101 +.LBB16_237: + ldr x8, [sp, #16] + ldr x0, [x8] + bl _dev_info + b .LBB16_179 +.LBB16_238: + ldr x8, [sp, #16] adrp x1, .L.str.98 add x1, x1, :lo12:.L.str.98 -.LBB16_355: - ldr x8, [sp, #16] ldr x0, [x8] bl _dev_info - b .LBB16_297 -.LBB16_356: + b .LBB16_216 +.LBB16_239: ldr x8, [sp, #16] - adrp x1, .L.str.95 - add x1, x1, :lo12:.L.str.95 + adrp x1, .L.str.96 + add x1, x1, :lo12:.L.str.96 ldr x0, [x8] bl _dev_info - b .LBB16_334 -.LBB16_357: - ldr x8, [sp, #16] - adrp x1, .L.str.93 - add x1, x1, :lo12:.L.str.93 - ldr x0, [x8] - bl _dev_info - b .LBB16_303 -.LBB16_358: + b .LBB16_185 +.LBB16_240: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_451 -.LBB16_359: + b.ge .LBB16_487 +.LBB16_241: ldr x8, [x19, #440] ldr x0, [x19, #376] ldrsw x2, [x19, #260] @@ -5163,31 +5059,31 @@ ebc_thread: bl memset ldr w8, [x19, #260] cmp w8, #1 - b.lt .LBB16_467 + b.lt .LBB16_504 ldrb w11, [x19, #288] ldrb w12, [x19, #304] ldr x9, [x19, #392] sub w11, w11, w12 ldp x12, x10, [x19, #368] - b .LBB16_362 -.LBB16_361: + b .LBB16_244 +.LBB16_243: add x9, x9, #1 add x10, x10, #1 add x12, x12, #1 subs w8, w8, #1 - b.eq .LBB16_467 -.LBB16_362: + b.eq .LBB16_504 +.LBB16_244: ldrb w13, [x10] ldrb w14, [x12] cmp w13, w14 - b.eq .LBB16_361 + b.eq .LBB16_243 strb w11, [x9] - b .LBB16_361 -.LBB16_364: + b .LBB16_243 +.LBB16_246: ldr w8, [x19, #796] - cbz w8, .LBB16_467 + cbz w8, .LBB16_504 bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_467 + cbnz w0, .LBB16_504 sub x0, x29, #40 mov w1, wzr str wzr, [x19, #320] @@ -5201,25 +5097,25 @@ ebc_thread: mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #320] - cbz w8, .LBB16_444 -.LBB16_367: + cbz w8, .LBB16_481 +.LBB16_249: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_368: +.LBB16_250: bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_467 + cbnz w0, .LBB16_504 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_484 -.LBB16_370: + b.ge .LBB16_521 +.LBB16_252: ldr w8, [x19, #312] ldr x1, [x19, #376] sub w8, w8, #1 cmp w8, #1 - b.le .LBB16_455 + b.le .LBB16_491 ldr w10, [x19, #316] mov x9, xzr ldr x11, [x19, #384] @@ -5229,80 +5125,80 @@ ebc_thread: sub x13, x12, #1 orr x14, x14, #0x1 mov x16, x10 - b .LBB16_373 -.LBB16_372: + b .LBB16_255 +.LBB16_254: add w15, w15, #1 add x16, x16, x10 add x14, x14, x10 add x9, x9, x10 cmp w15, w8 - b.eq .LBB16_454 -.LBB16_373: + b.eq .LBB16_490 +.LBB16_255: cmp w12, #2 - b.lt .LBB16_372 + b.lt .LBB16_254 mov x17, xzr -.LBB16_375: +.LBB16_257: add w0, w16, w17 add w0, w0, #1 sxtw x0, w0 ldrb w2, [x11, x0] - cbz w2, .LBB16_377 + cbz w2, .LBB16_259 mov w2, #248 - b .LBB16_382 -.LBB16_377: + b .LBB16_264 +.LBB16_259: add w2, w9, w17 add w2, w2, #1 ldrb w2, [x11, w2, sxtw] - cbnz w2, .LBB16_381 + cbnz w2, .LBB16_263 add w2, w14, w17 ldrb w2, [x11, w2, sxtw] - cbnz w2, .LBB16_381 + cbnz w2, .LBB16_263 add w2, w16, w17 ldrb w2, [x11, w2, sxtw] - cbnz w2, .LBB16_381 + cbnz w2, .LBB16_263 add w2, w16, w17 add w2, w2, #2 ldrb w2, [x11, w2, sxtw] - cbz w2, .LBB16_383 -.LBB16_381: + cbz w2, .LBB16_265 +.LBB16_263: mov w2, #232 -.LBB16_382: +.LBB16_264: strb w2, [x1, x0] -.LBB16_383: +.LBB16_265: add x17, x17, #1 cmp x13, x17 - b.ne .LBB16_375 - b .LBB16_372 -.LBB16_384: + b.ne .LBB16_257 + b .LBB16_254 +.LBB16_266: ldr x20, [sp, #24] mov w6, #1 mov x5, x20 bl get_overlay_image -.LBB16_385: +.LBB16_267: mov x1, x20 ldr x0, [sp] str wzr, [x19, #112] bl flip -.LBB16_386: +.LBB16_268: + ldur x9, [x29, #-48] +.LBB16_269: ldr x8, [x19, #448] ldr w8, [x8, #40] cmp w8, #23 - b.hi .LBB16_388 - mov w9, #1 - lsl w8, w9, w8 - mov w9, #1 - movk w9, #192, lsl #16 - tst w8, w9 - b.ne .LBB16_469 -.LBB16_388: - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_469 + b.hi .LBB16_271 + mov w10, #1 + lsl w8, w23, w8 + movk w10, #192, lsl #16 + tst w8, w10 + b.ne .LBB16_506 +.LBB16_271: + ldr w8, [x9] + cbz w8, .LBB16_506 ldr w8, [x19, #812] str wzr, [x19, #772] cmp w8, #1 - b.ge .LBB16_453 -.LBB16_390: + b.ge .LBB16_489 +.LBB16_273: adrp x8, jiffies ldr x20, [x8, :lo12:jiffies] ldrb w8, [x19, #288] @@ -5311,39 +5207,39 @@ ebc_thread: bl __msecs_to_jiffies add x1, x0, x20 ldr x0, [sp, #8] - b .LBB16_468 -.LBB16_391: + b .LBB16_505 +.LBB16_274: ldr x8, [sp, #16] - adrp x1, .L.str.84 - add x1, x1, :lo12:.L.str.84 + adrp x1, .L.str.87 + add x1, x1, :lo12:.L.str.87 ldr x0, [x8] bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_30 - b .LBB16_47 -.LBB16_392: - ldr x8, [sp, #16] - adrp x1, .L.str.85 - add x1, x1, :lo12:.L.str.85 - ldr x0, [x8] - bl _dev_info - b .LBB16_48 -.LBB16_393: + ldur x11, [x29, #-48] ldr w8, [x11] - cbz w8, .LBB16_399 + cbnz w8, .LBB16_34 + b .LBB16_38 +.LBB16_275: + ldr x8, [sp, #16] + adrp x1, .L.str.88 + add x1, x1, :lo12:.L.str.88 + ldr x0, [x8] + bl _dev_info + b .LBB16_39 +.LBB16_276: + ldr w8, [x11] + cbz w8, .LBB16_282 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_481 -.LBB16_395: + b.ge .LBB16_518 +.LBB16_278: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_396: +.LBB16_279: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -5351,31 +5247,31 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_429 - cbnz x0, .LBB16_430 + cbz w8, .LBB16_312 + cbnz x0, .LBB16_313 bl schedule - b .LBB16_396 -.LBB16_399: + b .LBB16_279 +.LBB16_282: ldr x8, [x19, #440] ldr x9, [sp, #64] ldr w8, [x8, #40] ldr w9, [x9, #40] cmp w9, w8 - b.eq .LBB16_406 + b.eq .LBB16_289 ldr w8, [x11] - cbz w8, .LBB16_406 + cbz w8, .LBB16_289 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_483 -.LBB16_402: + b.ge .LBB16_520 +.LBB16_285: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_403: +.LBB16_286: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -5383,11 +5279,11 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_429 - cbnz x0, .LBB16_430 + cbz w8, .LBB16_312 + cbnz x0, .LBB16_313 bl schedule - b .LBB16_403 -.LBB16_406: + b .LBB16_286 +.LBB16_289: ldr w8, [x19, #316] mov w3, #255 ldr w9, [x19, #312] @@ -5395,33 +5291,33 @@ ebc_thread: cmp w8, #0 csel w13, w10, w8, lt cmp w9, #1 - b.lt .LBB16_432 + b.lt .LBB16_315 ldr x12, [sp, #64] mov w10, wzr ldr x11, [x19, #392] asr w13, w13, #3 ldr x14, [x19, #368] ldr x12, [x12, #16] - b .LBB16_409 -.LBB16_408: + b .LBB16_292 +.LBB16_291: add w10, w10, #1 cmp w10, w9 - b.eq .LBB16_432 -.LBB16_409: + b.eq .LBB16_315 +.LBB16_292: cmp w8, #8 - b.lt .LBB16_408 + b.lt .LBB16_291 mov w15, w13 - b .LBB16_412 -.LBB16_411: + b .LBB16_295 +.LBB16_294: add x14, x14, #8 subs w15, w15, #1 - b.eq .LBB16_408 -.LBB16_412: + b.eq .LBB16_291 +.LBB16_295: ldr x16, [x12], #8 ldr x17, [x14] ldr x0, [x11], #8 cmp x16, x17 - b.eq .LBB16_411 + b.eq .LBB16_294 tst x0, #0xff csel x1, x3, xzr, eq tst x0, #0xff00 @@ -5450,55 +5346,55 @@ ebc_thread: and x16, x0, x16 orr x16, x17, x16 str x16, [x14] - b .LBB16_411 -.LBB16_414: + b .LBB16_294 +.LBB16_297: ldr w8, [x19, #260] add w9, w8, #7 cmp w8, #0 csel w9, w9, w8, lt cmp w8, #8 - b.lt .LBB16_418 + b.lt .LBB16_301 ldr x10, [x19, #440] asr w9, w9, #3 ldr x1, [x10, #16] ldr x10, [sp, #64] mov x11, x1 ldr x10, [x10, #16] -.LBB16_416: +.LBB16_299: ldr x12, [x10] ldr x13, [x11] cmp x12, x13 - b.ne .LBB16_272 + b.ne .LBB16_154 add x11, x11, #8 add x10, x10, #8 subs w9, w9, #1 - b.ne .LBB16_416 -.LBB16_418: + b.ne .LBB16_299 +.LBB16_301: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_482 -.LBB16_419: + b.ge .LBB16_519 +.LBB16_302: ldr x0, [sp, #64] bl ebc_buf_release b .LBB16_3 -.LBB16_420: +.LBB16_303: ldr w8, [x19, #788] - cbz w8, .LBB16_427 + cbz w8, .LBB16_310 ldr w8, [x19, #784] - cbz w8, .LBB16_427 + cbz w8, .LBB16_310 ldur x8, [x29, #-56] ldr x9, [sp, #64] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_487 -.LBB16_423: + b.ge .LBB16_524 +.LBB16_306: ldr w8, [x19, #260] ldr x1, [x19, #384] cmp w8, #1 - b.lt .LBB16_473 + b.lt .LBB16_510 ldr x9, [x9, #16] -.LBB16_425: +.LBB16_308: ldrb w10, [x9], #1 ldrb w11, [x1] mvn w12, w10 @@ -5507,78 +5403,100 @@ ebc_thread: csel w10, w10, w12, eq subs x8, x8, #1 strb w10, [x1], #1 - b.ne .LBB16_425 + b.ne .LBB16_308 ldr x1, [x19, #384] ldr w8, [x19, #260] - b .LBB16_474 -.LBB16_427: + b .LBB16_511 +.LBB16_310: ldr x8, [x19, #440] ldr x0, [x19, #376] ldrsw x2, [x19, #260] ldr x1, [x8, #16] bl memcpy - b .LBB16_431 -.LBB16_428: + b .LBB16_314 +.LBB16_311: ldr x8, [sp, #16] - adrp x1, .L.str.88 - add x1, x1, :lo12:.L.str.88 + adrp x1, .L.str.91 + add x1, x1, :lo12:.L.str.91 ldr x0, [x8] bl _dev_info - b .LBB16_73 -.LBB16_429: + b .LBB16_76 +.LBB16_312: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_430: +.LBB16_313: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_480 -.LBB16_431: + b.ge .LBB16_517 +.LBB16_314: ldr x8, [x19, #448] ldr x0, [x19, #368] ldrsw x2, [x19, #260] ldr x1, [x8, #16] bl memcpy -.LBB16_432: +.LBB16_315: ldr w8, [x19, #284] mov w9, #3 str w9, [x19, #472] - cbnz w8, .LBB16_469 - mov w8, #1 + cbnz w8, .LBB16_506 + ldr x8, [sp, #64] + str w23, [x19, #284] mov x0, x19 mov w2, wzr - str w8, [x19, #284] - ldr x8, [sp, #64] ldr w1, [x8, #40] bl ebc_lut_update ldr w9, [x19, #812] ldr w8, [x19, #336] cmp w9, #1 strh w8, [x19, #288] - b.ge .LBB16_472 -.LBB16_434: + b.ge .LBB16_509 +.LBB16_317: mov x0, x19 bl ebc_frame_start - b .LBB16_469 -.LBB16_435: -.LBB16_436: + b .LBB16_506 +.LBB16_318: +.LBB16_319: ldr x0, [x19, #376] sxtw x2, w8 bl memcpy ldr x8, [x19, #448] ldr x0, [x19, #368] ldrsw x2, [x19, #260] + ldr w9, [x8, #40] ldr x1, [x8, #16] + sub w8, w9, #2 + cmp w8, #9 + b.hi .LBB16_323 + add w8, w2, #7 + cmp w8, #15 + b.lo .LBB16_324 + add w8, w2, #7 + cmp w2, #0 + csel w8, w8, w2, lt + asr w8, w8, #3 + sub w8, w8, #1 +.LBB16_322: + sbfiz x9, x8, #3, #32 + sub w8, w8, #1 + cmn w8, #1 + ldr x10, [x1, x9] + and x10, x10, #0xf8f8f8f8f8f8f8f8 + str x10, [x0, x9] + b.ne .LBB16_322 + b .LBB16_324 +.LBB16_323: bl memcpy +.LBB16_324: ldr w8, [x19, #812] str wzr, [x19, #796] str wzr, [x19, #784] str wzr, [x19, #772] cmp w8, #1 - b.ge .LBB16_477 -.LBB16_437: + b.ge .LBB16_514 +.LBB16_325: adrp x8, jiffies ldr x21, [x8, :lo12:jiffies] ldrb w8, [x19, #336] @@ -5588,18 +5506,612 @@ ebc_thread: add x1, x0, x21 ldr x0, [sp, #8] bl mod_timer - b .LBB16_111 +.LBB16_326: + mov w8, #4 + str x20, [x19, #464] + ldr w9, [x19, #316] + str w8, [x19, #472] + ldp w10, w8, [x20, #48] + ldp w12, w13, [x20, #56] + add w11, w10, #7 + cmp w10, #0 + add w14, w12, #7 + csel w11, w11, w10, lt + cmp w12, #0 + add w10, w9, #7 + csel w12, w14, w12, lt + cmp w9, #0 + asr w15, w12, #3 + csel w14, w10, w9, lt + ldr w10, [x19, #312] + add w9, w15, #1 + asr w12, w14, #3 + sub w16, w12, #1 + cmp w9, w12 + csinc w17, w16, w15, ge + sub w9, w10, #1 + cmp w13, w10 + csel w9, w13, w9, lt + cmp w8, w9 + stp w9, w17, [sp, #60] + b.le .LBB16_331 +.LBB16_327: + ldur x8, [x29, #-48] + ldr w8, [x8] + cbz w8, .LBB16_473 + adrp x8, ebc_auto_task + ldr x0, [x8, :lo12:ebc_auto_task] + bl wake_up_process + ldr x0, [x19, #456] + cbz x0, .LBB16_330 +.LBB16_329: + bl ebc_buf_release +.LBB16_330: + ldr x8, [x19, #464] + str x8, [x19, #456] + b .LBB16_3 +.LBB16_331: + ldr x9, [x19, #448] + mul w12, w12, w8 + ldp x16, x15, [x19, #392] + asr w10, w11, #3 + sxtw x11, w12 + ldr w13, [x9, #40] + lsl x11, x11, #3 + ldr x9, [x9, #16] + sbfx x1, x14, #3, #29 + ldp x0, x12, [x19, #368] + add x14, x15, x11 + add x15, x16, x11 + add x16, x9, x11 + sxtw x9, w10 + ldr x17, [x20, #16] + sub w13, w13, #2 + add x0, x0, x11 + lsl x3, x1, #3 + stp x9, x10, [sp, #40] + ldr w9, [sp, #64] + add x17, x17, x11 + add w9, w9, #1 + sxtw x2, w9 + b .LBB16_333 +.LBB16_332: + ldr w9, [sp, #60] + add w8, w8, #1 + add x14, x14, x3 + add x15, x15, x3 + add x16, x16, x3 + add x17, x17, x3 + add x0, x0, x3 + cmp w8, w9 + b.gt .LBB16_327 +.LBB16_333: + ldr w9, [sp, #64] + ldr x10, [sp, #48] + cmp w10, w9 + b.gt .LBB16_332 + ldr x4, [sp, #40] + b .LBB16_338 +.LBB16_335: + orr x1, x1, x21 +.LBB16_336: + and x9, x20, #0xf8f8f8f8f8f8f8f8 + str x9, [x16, x4, lsl #3] +.LBB16_337: + add x4, x4, #1 + str x7, [x14, x5] + cmp x2, x4 + str x1, [x0, x5] + str x6, [x15, x5] + b.eq .LBB16_332 +.LBB16_338: + lsl x5, x4, #3 + ldr x6, [x15, x5] + ldr x1, [x0, x5] + ldr x30, [x12, x5] + ldr x21, [x17, x5] + ldr x20, [x16, x5] + tst x6, #0xff + ldr x7, [x14, x5] + b.eq .LBB16_342 + mvn w9, w30 + tst x9, #0xf0 + cset w11, ne + tst x9, x24 + cset w9, ne + and w9, w11, w9 + tbnz w9, #0, .LBB16_348 + and x9, x1, #0xf0 + cmp x9, #240 + b.ne .LBB16_348 + and x9, x21, #0xff + cbnz x9, .LBB16_348 +.LBB16_342: + and x7, x7, #0xffffffffffffff00 + and x6, x6, #0xffffffffffffff00 + and x11, x21, #0xf0 + cmp w11, #240 + b.ne .LBB16_438 + mvn w9, w20 + and x11, x9, #0xf0 + and x9, x20, #0xf8 + cmp x11, #0 + and x11, x1, #0xffffffffffffff00 + ccmp x9, #0, #4, ne + b.ne .LBB16_345 + and x1, x20, #0xff + cmp w13, #10 + csel x9, x9, x1, lo + orr x7, x7, #0x1 + b .LBB16_347 +.LBB16_345: + cmp w13, #9 + b.ls .LBB16_347 + and x9, x20, #0xff +.LBB16_347: + orr x1, x9, x11 +.LBB16_348: + tst x6, #0xff00 + b.eq .LBB16_352 + mvn w9, w30 + tst x9, #0xf000 + cset w11, ne + tst x9, x27 + cset w9, ne + and w9, w11, w9 + tbnz w9, #0, .LBB16_360 + and x9, x1, #0xf000 + cmp x9, #15, lsl #12 + b.ne .LBB16_360 + and x9, x21, #0xff00 + cbnz x9, .LBB16_360 +.LBB16_352: + and x7, x7, #0xffffffffffff00ff + and x6, x6, #0xffffffffffff00ff + and x11, x21, #0xf000 + cmp w11, #15, lsl #12 + b.ne .LBB16_440 + and x11, x20, #0xf800 + and x1, x1, #0xffffffffffff00ff + mvn w9, w20 + tst x9, #0xf000 + b.eq .LBB16_357 + cbz x11, .LBB16_357 + cmp w13, #9 + b.hi .LBB16_358 + orr x1, x1, x11 + b .LBB16_360 +.LBB16_357: + and x9, x20, #0xff00 + cmp w13, #10 + csel x9, x11, x9, lo + orr x7, x7, #0x100 + b .LBB16_359 +.LBB16_358: + and x9, x20, #0xff00 +.LBB16_359: + orr x1, x1, x9 +.LBB16_360: + tst x6, #0xff0000 + b.eq .LBB16_364 + mvn w9, w30 + mov w10, #15204352 + tst x9, #0xf00000 + cset w11, ne + tst x9, x10 + cset w9, ne + and w9, w11, w9 + tbnz w9, #0, .LBB16_372 + and x9, x1, #0xf00000 + cmp x9, #3840, lsl #12 + b.ne .LBB16_372 + and x9, x21, #0xff0000 + cbnz x9, .LBB16_372 +.LBB16_364: + and x7, x7, #0xffffffffff00ffff + and x6, x6, #0xffffffffff00ffff + and x11, x21, #0xf00000 + cmp x11, #3840, lsl #12 + b.ne .LBB16_442 + and x11, x20, #0xf80000 + and x1, x1, #0xffffffffff00ffff + mvn w9, w20 + tst x9, #0xf00000 + b.eq .LBB16_369 + cbz x11, .LBB16_369 + cmp w13, #9 + b.hi .LBB16_370 + orr x1, x1, x11 + b .LBB16_372 +.LBB16_369: + and x9, x20, #0xff0000 + cmp w13, #10 + csel x9, x11, x9, lo + orr x7, x7, #0x10000 + b .LBB16_371 +.LBB16_370: + and x9, x20, #0xff0000 +.LBB16_371: + orr x1, x1, x9 +.LBB16_372: + tst x6, #0xff000000 + b.eq .LBB16_376 + mvn w9, w30 + mov w10, #-402653184 + tst x9, #0xf0000000 + cset w11, ne + tst x9, x10 + cset w9, ne + and w9, w11, w9 + tbnz w9, #0, .LBB16_384 + and x9, x1, #0xf0000000 + cmp x9, x22 + b.ne .LBB16_384 + and x9, x21, #0xff000000 + cbnz x9, .LBB16_384 +.LBB16_376: + and x7, x7, #0xffffffff00ffffff + and x6, x6, #0xffffffff00ffffff + and x11, x21, #0xf0000000 + cmp w11, w22 + b.ne .LBB16_444 + and x11, x20, #0xf8000000 + and x1, x1, #0xffffffff00ffffff + mvn w9, w20 + tst x9, #0xf0000000 + b.eq .LBB16_381 + cbz x11, .LBB16_381 + cmp w13, #9 + b.hi .LBB16_382 + orr x1, x1, x11 + b .LBB16_384 +.LBB16_381: + and x9, x20, #0xff000000 + cmp w13, #10 + csel x9, x11, x9, lo + orr x7, x7, #0x1000000 + b .LBB16_383 +.LBB16_382: + and x9, x20, #0xff000000 +.LBB16_383: + orr x1, x1, x9 +.LBB16_384: + tst x6, #0xff00000000 + b.eq .LBB16_388 + bics xzr, x26, x30 + mov x11, #996432412672 + cset w9, ne + bics xzr, x11, x30 + cset w11, ne + and w9, w9, w11 + tbnz w9, #0, .LBB16_396 + and x9, x1, #0xf000000000 + cmp x9, x26 + b.ne .LBB16_396 + and x9, x21, #0xff00000000 + cbnz x9, .LBB16_396 +.LBB16_388: + and x7, x7, #0xffffff00ffffffff + and x6, x6, #0xffffff00ffffffff + and x11, x21, #0xf000000000 + cmp x11, x26 + b.ne .LBB16_446 + and x11, x20, #0xf800000000 + and x1, x1, #0xffffff00ffffffff + mvn x9, x20 + tst x9, #0xf000000000 + b.eq .LBB16_393 + cbz x11, .LBB16_393 + cmp w13, #9 + b.hi .LBB16_394 + orr x1, x1, x11 + b .LBB16_396 +.LBB16_393: + and x9, x20, #0xff00000000 + cmp w13, #10 + csel x9, x11, x9, lo + orr x7, x7, #0x100000000 + b .LBB16_395 +.LBB16_394: + and x9, x20, #0xff00000000 +.LBB16_395: + orr x1, x1, x9 +.LBB16_396: + tst x6, #0xff0000000000 + b.eq .LBB16_400 + bics xzr, x25, x30 + mov x11, #255086697644032 + cset w9, ne + bics xzr, x11, x30 + cset w11, ne + and w9, w9, w11 + tbnz w9, #0, .LBB16_408 + and x9, x1, #0xf00000000000 + cmp x9, x25 + b.ne .LBB16_408 + and x9, x21, #0xff0000000000 + cbnz x9, .LBB16_408 +.LBB16_400: + and x7, x7, #0xffff00ffffffffff + and x6, x6, #0xffff00ffffffffff + and x11, x21, #0xf00000000000 + cmp x11, x25 + b.ne .LBB16_448 + and x11, x20, #0xf80000000000 + and x1, x1, #0xffff00ffffffffff + mvn x9, x20 + tst x9, #0xf00000000000 + b.eq .LBB16_405 + cbz x11, .LBB16_405 + cmp w13, #9 + b.hi .LBB16_406 + orr x1, x1, x11 + b .LBB16_408 +.LBB16_405: + and x9, x20, #0xff0000000000 + cmp w13, #10 + csel x9, x11, x9, lo + orr x7, x7, #0x10000000000 + b .LBB16_407 +.LBB16_406: + and x9, x20, #0xff0000000000 +.LBB16_407: + orr x1, x1, x9 +.LBB16_408: + tst x6, #0xff000000000000 + b.eq .LBB16_412 + bics xzr, x28, x30 + mov x11, #65302194596872192 + cset w9, ne + bics xzr, x11, x30 + cset w11, ne + and w9, w9, w11 + tbnz w9, #0, .LBB16_420 + and x9, x1, #0xf0000000000000 + cmp x9, x28 + b.ne .LBB16_420 + and x9, x21, #0xff000000000000 + cbnz x9, .LBB16_420 +.LBB16_412: + and x7, x7, #0xff00ffffffffffff + and x6, x6, #0xff00ffffffffffff + and x11, x21, #0xf0000000000000 + cmp x11, x28 + b.ne .LBB16_450 + and x11, x20, #0xf8000000000000 + and x1, x1, #0xff00ffffffffffff + mvn x9, x20 + tst x9, #0xf0000000000000 + b.eq .LBB16_417 + cbz x11, .LBB16_417 + cmp w13, #9 + b.hi .LBB16_418 + orr x1, x1, x11 + b .LBB16_420 +.LBB16_417: + and x9, x20, #0xff000000000000 + cmp w13, #10 + csel x9, x11, x9, lo + orr x7, x7, #0x1000000000000 + b .LBB16_419 +.LBB16_418: + and x9, x20, #0xff000000000000 +.LBB16_419: + orr x1, x1, x9 +.LBB16_420: + lsr x9, x6, #56 + cbnz x9, .LBB16_426 + and x7, x7, #0xffffffffffffff + lsr x9, x21, #60 + cmp x9, #15 + b.lo .LBB16_430 + and x21, x20, #0xf800000000000000 + and x1, x1, #0xffffffffffffff + lsr x9, x20, #59 + cmp x9, #30 + b.hi .LBB16_425 + cbz x21, .LBB16_425 + mov x9, #-1152921504606846976 + cmp x21, x9 + b.ne .LBB16_436 +.LBB16_425: + and x9, x20, #0xff00000000000000 + cmp w13, #10 + csel x9, x21, x9, lo + orr x7, x7, #0x100000000000000 + orr x1, x1, x9 + cmp w13, #9 + b.ls .LBB16_336 + b .LBB16_337 +.LBB16_426: + lsr x9, x30, #60 + mov x11, #-1729382256910270464 + cmp x9, #15 + cset w9, lo + bics xzr, x11, x30 + cset w11, ne + and w9, w9, w11 + tbnz w9, #0, .LBB16_434 + lsr x9, x1, #60 + cmp x9, #15 + b.lo .LBB16_434 + lsr x9, x21, #56 + cbnz x9, .LBB16_434 + and x7, x7, #0xffffffffffffff + and x6, x6, #0xffffffffffffff +.LBB16_430: + and x9, x21, #0xf000000000000000 + mov x11, #-2305843009213693952 + cmp x9, x11 + b.eq .LBB16_433 + cbnz x9, .LBB16_435 + and x1, x1, #0xffffffffffffff + orr x7, x7, #0x100000000000000 + cmp w13, #9 + b.ls .LBB16_336 + b .LBB16_337 +.LBB16_433: + mov x9, #-1152921504606846976 + orr x7, x7, #0x100000000000000 + bfxil x9, x1, #0, #56 + mov x1, x9 +.LBB16_434: + cmp w13, #9 + b.ls .LBB16_336 + b .LBB16_337 +.LBB16_435: + and x11, x1, #0xffffffffffffff + orr x1, x11, x9 + cmp w13, #9 + b.ls .LBB16_336 + b .LBB16_337 +.LBB16_436: + cmp w13, #9 + b.ls .LBB16_335 + and x9, x20, #0xff00000000000000 + orr x1, x1, x9 + b .LBB16_337 .LBB16_438: + cbnz w11, .LBB16_452 + and x1, x1, #0xffffffffffffff00 + orr x7, x7, #0x1 + b .LBB16_348 +.LBB16_440: + cbnz w11, .LBB16_454 + and x1, x1, #0xffffffffffff00ff + orr x7, x7, #0x100 + b .LBB16_360 +.LBB16_442: + cbnz x11, .LBB16_456 + and x1, x1, #0xffffffffff00ffff + orr x7, x7, #0x10000 + b .LBB16_372 +.LBB16_444: + cbnz w11, .LBB16_458 + and x1, x1, #0xffffffff00ffffff + orr x7, x7, #0x1000000 + b .LBB16_384 +.LBB16_446: + cbnz x11, .LBB16_460 + and x1, x1, #0xffffff00ffffffff + orr x7, x7, #0x100000000 + b .LBB16_396 +.LBB16_448: + cbnz x11, .LBB16_462 + and x1, x1, #0xffff00ffffffffff + orr x7, x7, #0x10000000000 + b .LBB16_408 +.LBB16_450: + cbnz x11, .LBB16_464 + and x1, x1, #0xff00ffffffffffff + orr x7, x7, #0x1000000000000 + b .LBB16_420 +.LBB16_452: + and x9, x1, #0xffffffffffffff00 + cmp w11, #224 + b.ne .LBB16_466 + orr x1, x9, #0xf0 + orr x7, x7, #0x1 + b .LBB16_348 +.LBB16_454: + and x9, x1, #0xffffffffffff00ff + cmp w11, #14, lsl #12 + b.ne .LBB16_467 + orr x1, x9, #0xf000 + orr x7, x7, #0x100 + b .LBB16_360 +.LBB16_456: + and x9, x1, #0xffffffffff00ffff + cmp x11, #3584, lsl #12 + b.ne .LBB16_468 + orr x1, x9, #0xf00000 + orr x7, x7, #0x10000 + b .LBB16_372 +.LBB16_458: + mov w9, #-536870912 + cmp w11, w9 + b.ne .LBB16_469 + and x9, x1, #0xffffffff00ffffff + orr x7, x7, #0x1000000 + orr x1, x9, #0xf0000000 + b .LBB16_384 +.LBB16_460: + mov x9, #962072674304 + cmp x11, x9 + b.ne .LBB16_470 + and x9, x1, #0xffffff00ffffffff + orr x7, x7, #0x100000000 + orr x1, x9, #0xf000000000 + b .LBB16_396 +.LBB16_462: + mov x9, #246290604621824 + cmp x11, x9 + b.ne .LBB16_471 + and x9, x1, #0xffff00ffffffffff + orr x7, x7, #0x10000000000 + orr x1, x9, #0xf00000000000 + b .LBB16_408 +.LBB16_464: + mov x9, #63050394783186944 + cmp x11, x9 + b.ne .LBB16_472 + and x9, x1, #0xff00ffffffffffff + orr x7, x7, #0x1000000000000 + orr x1, x9, #0xf0000000000000 + b .LBB16_420 +.LBB16_466: + orr x1, x11, x9 + b .LBB16_348 +.LBB16_467: + orr x1, x9, x11 + b .LBB16_360 +.LBB16_468: + orr x1, x9, x11 + b .LBB16_372 +.LBB16_469: + and x9, x1, #0xffffffff00ffffff + orr x1, x9, x11 + b .LBB16_384 +.LBB16_470: + and x9, x1, #0xffffff00ffffffff + orr x1, x9, x11 + b .LBB16_396 +.LBB16_471: + and x9, x1, #0xffff00ffffffffff + orr x1, x9, x11 + b .LBB16_408 +.LBB16_472: + and x9, x1, #0xff00ffffffffffff + orr x1, x9, x11 + b .LBB16_420 +.LBB16_473: + mov x0, x19 + mov w1, #1 + mov w2, wzr + str w23, [x19, #284] + bl ebc_lut_update + ldr w9, [x19, #812] + ldr w8, [x19, #336] + cmp w9, #1 + strh w8, [x19, #288] + b.ge .LBB16_475 +.LBB16_474: + mov x0, x19 + bl ebc_frame_start + ldr x0, [x19, #456] + cbnz x0, .LBB16_329 + b .LBB16_330 +.LBB16_475: ldr x9, [sp, #16] - adrp x1, .L.str.80 + adrp x1, .L.str.83 and w2, w8, #0xff ubfx w3, w8, #8, #8 - add x1, x1, :lo12:.L.str.80 + add x1, x1, :lo12:.L.str.83 ldr x0, [x9] bl _dev_info - b .LBB16_239 -.LBB16_439: -.LBB16_440: + b .LBB16_474 +.LBB16_476: +.LBB16_477: ldr x0, [x19, #376] sxtw x2, w8 bl memcpy @@ -5610,35 +6122,35 @@ ebc_thread: bl memcpy str wzr, [x19, #796] str wzr, [x19, #784] - b .LBB16_255 -.LBB16_441: + b .LBB16_128 +.LBB16_478: ldr x9, [x19, #448] - adrp x1, .L.str.81 + adrp x1, .L.str.84 ldr x0, [x19, #328] and w3, w8, #0xff - add x1, x1, :lo12:.L.str.81 + add x1, x1, :lo12:.L.str.84 ldr w2, [x9, #40] bl _dev_info - b .LBB16_260 -.LBB16_442: - adrp x1, .L.str.77 + b .LBB16_139 +.LBB16_479: + adrp x1, .L.str.79 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.77 + add x1, x1, :lo12:.L.str.79 bl _dev_info ldr w8, [x19, #812] str wzr, [x19, #772] cmp w8, #1 - b.lt .LBB16_77 + b.lt .LBB16_80 ldr x8, [sp, #16] - adrp x1, .L.str.78 - add x1, x1, :lo12:.L.str.78 + adrp x1, .L.str.80 + add x1, x1, :lo12:.L.str.80 ldr x0, [x8] bl _dev_info - b .LBB16_77 -.LBB16_444: + b .LBB16_80 +.LBB16_481: mov w8, #3 -.LBB16_445: - cbnz x0, .LBB16_368 +.LBB16_482: + cbnz x0, .LBB16_250 mov x0, x8 bl schedule_timeout mov x20, x0 @@ -5651,53 +6163,46 @@ ebc_thread: cmp x20, #0 ccmp w9, #0, #4, eq csinc x8, x20, xzr, eq - cbnz w9, .LBB16_367 - cbnz x8, .LBB16_445 - b .LBB16_367 -.LBB16_448: + cbnz w9, .LBB16_249 + cbnz x8, .LBB16_482 + b .LBB16_249 +.LBB16_485: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait b .LBB16_20 -.LBB16_449: +.LBB16_486: ldr x8, [sp, #16] - adrp x1, .L.str.77 - add x1, x1, :lo12:.L.str.77 + adrp x1, .L.str.90 + add x1, x1, :lo12:.L.str.90 ldr x0, [x8] bl _dev_info - b .LBB16_91 -.LBB16_450: + b .LBB16_56 +.LBB16_487: ldr x8, [sp, #16] - adrp x1, .L.str.87 - add x1, x1, :lo12:.L.str.87 + adrp x1, .L.str.99 + add x1, x1, :lo12:.L.str.99 ldr x0, [x8] bl _dev_info - b .LBB16_53 -.LBB16_451: + b .LBB16_241 +.LBB16_488: ldr x8, [sp, #16] - adrp x1, .L.str.96 - add x1, x1, :lo12:.L.str.96 + adrp x1, .L.str.94 + add x1, x1, :lo12:.L.str.94 ldr x0, [x8] bl _dev_info - b .LBB16_359 -.LBB16_452: + b .LBB16_173 +.LBB16_489: ldr x8, [sp, #16] - adrp x1, .L.str.91 - add x1, x1, :lo12:.L.str.91 + adrp x1, .L.str.80 + add x1, x1, :lo12:.L.str.80 ldr x0, [x8] bl _dev_info - b .LBB16_291 -.LBB16_453: - ldr x8, [sp, #16] - adrp x1, .L.str.78 - add x1, x1, :lo12:.L.str.78 - ldr x0, [x8] - bl _dev_info - b .LBB16_390 -.LBB16_454: + b .LBB16_273 +.LBB16_490: ldr x1, [x19, #376] -.LBB16_455: +.LBB16_491: ldr x8, [x19, #440] ldrsw x2, [x19, #260] ldr x0, [x8, #16] @@ -5705,18 +6210,17 @@ ebc_thread: ldr w8, [x19, #788] mov w9, #10 orr w10, wzr, #0x2 + str w23, [x19, #284] + str w23, [x19, #472] madd w9, w8, w9, w10 cmp w8, #7 ldr w10, [x19, #812] mov w8, #72 csel w8, w8, w9, gt - mov w9, #1 cmp w10, #1 - str w9, [x19, #284] strb w8, [x19, #288] - str w9, [x19, #472] - b.ge .LBB16_485 -.LBB16_456: + b.ge .LBB16_522 +.LBB16_492: mov x0, x19 bl ebc_frame_start adrp x8, jiffies @@ -5726,18 +6230,18 @@ ebc_thread: bl mod_timer ldr w8, [x19, #812] cmp w8, #1 - b.ge .LBB16_486 -.LBB16_457: + b.ge .LBB16_523 +.LBB16_493: ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_463 + cbz w8, .LBB16_500 sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_459: +.LBB16_495: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -5745,59 +6249,65 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_462 - cbnz x0, .LBB16_463 + cbz w8, .LBB16_499 + cbnz x0, .LBB16_500 bl schedule - b .LBB16_459 -.LBB16_462: + b .LBB16_495 +.LBB16_498: + ldr x8, [sp, #16] + adrp x1, .L.str.82 + add x1, x1, :lo12:.L.str.82 + ldr x0, [x8] + bl _dev_info + b .LBB16_147 +.LBB16_499: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_463: +.LBB16_500: ldr w2, [x19, #304] cmp w2, #10 - b.gt .LBB16_465 + b.gt .LBB16_502 str wzr, [x19, #796] - b .LBB16_466 -.LBB16_465: + b .LBB16_503 +.LBB16_502: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_488 -.LBB16_466: + b.ge .LBB16_525 +.LBB16_503: str wzr, [x19, #304] -.LBB16_467: +.LBB16_504: adrp x8, jiffies mov w9, #335544320 ldr x8, [x8, :lo12:jiffies] ldr x0, [sp, #32] add x1, x8, x9 -.LBB16_468: +.LBB16_505: bl mod_timer -.LBB16_469: +.LBB16_506: ldr w8, [x19, #676] cbnz w8, .LBB16_1 - mov w8, #1 - str w8, [x19, #676] + str w23, [x19, #676] b .LBB16_2 -.LBB16_471: +.LBB16_508: ldr x8, [sp, #16] - adrp x1, .L.str.90 - add x1, x1, :lo12:.L.str.90 + adrp x1, .L.str.93 + add x1, x1, :lo12:.L.str.93 ldr x0, [x8] bl _dev_info - b .LBB16_82 -.LBB16_472: + b .LBB16_85 +.LBB16_509: ldr x9, [sp, #16] - adrp x1, .L.str.86 + adrp x1, .L.str.89 and w2, w8, #0xff - add x1, x1, :lo12:.L.str.86 + add x1, x1, :lo12:.L.str.89 ldr x0, [x9] bl _dev_info - b .LBB16_434 -.LBB16_473: -.LBB16_474: + b .LBB16_317 +.LBB16_510: +.LBB16_511: ldr x0, [x19, #376] sxtw x2, w8 bl memcpy @@ -5808,123 +6318,123 @@ ebc_thread: bl memcpy str wzr, [x19, #796] str wzr, [x19, #784] - b .LBB16_432 -.LBB16_475: + b .LBB16_315 +.LBB16_512: + ldr x8, [sp, #16] + adrp x1, .L.str.105 + add x1, x1, :lo12:.L.str.105 + ldr x0, [x8] + bl _dev_err + b .LBB16_302 +.LBB16_513: + ldr x8, [sp, #16] + adrp x1, .L.str.81 + add x1, x1, :lo12:.L.str.81 + ldr x0, [x8] + bl _dev_info + b .LBB16_109 +.LBB16_514: + ldr x8, [sp, #16] + adrp x1, .L.str.80 + add x1, x1, :lo12:.L.str.80 + ldr x0, [x8] + bl _dev_info + b .LBB16_325 +.LBB16_515: + ldr x8, [sp, #16] + adrp x1, .L.str.79 + add x1, x1, :lo12:.L.str.79 + ldr x0, [x8] + bl _dev_info + b .LBB16_105 +.LBB16_516: + ldr x8, [sp, #16] + adrp x1, .L.str.81 + add x1, x1, :lo12:.L.str.81 + ldr x0, [x8] + bl _dev_info + b .LBB16_123 +.LBB16_517: + ldr x8, [sp, #16] + adrp x1, .L.str.88 + add x1, x1, :lo12:.L.str.88 + ldr x0, [x8] + bl _dev_info + b .LBB16_314 +.LBB16_518: + ldr x8, [sp, #16] + adrp x1, .L.str.87 + add x1, x1, :lo12:.L.str.87 + ldr x0, [x8] + bl _dev_info + ldur x8, [x29, #-48] + ldr w8, [x8] + cbnz w8, .LBB16_278 + b .LBB16_313 +.LBB16_519: + ldr x8, [sp, #16] + adrp x1, .L.str.92 + add x1, x1, :lo12:.L.str.92 + ldr x0, [x8] + bl _dev_info + b .LBB16_302 +.LBB16_520: + ldr x8, [sp, #16] + adrp x1, .L.str.87 + add x1, x1, :lo12:.L.str.87 + ldr x0, [x8] + bl _dev_info + ldur x8, [x29, #-48] + ldr w8, [x8] + cbnz w8, .LBB16_285 + b .LBB16_313 +.LBB16_521: ldr x8, [sp, #16] adrp x1, .L.str.102 add x1, x1, :lo12:.L.str.102 ldr x0, [x8] - bl _dev_err - b .LBB16_419 -.LBB16_476: - ldr x8, [sp, #16] - adrp x1, .L.str.79 - add x1, x1, :lo12:.L.str.79 - ldr x0, [x8] bl _dev_info - b .LBB16_106 -.LBB16_477: - ldr x8, [sp, #16] - adrp x1, .L.str.78 - add x1, x1, :lo12:.L.str.78 - ldr x0, [x8] - bl _dev_info - b .LBB16_437 -.LBB16_478: - ldr x8, [sp, #16] - adrp x1, .L.str.77 - add x1, x1, :lo12:.L.str.77 - ldr x0, [x8] - bl _dev_info - b .LBB16_102 -.LBB16_479: - ldr x8, [sp, #16] - adrp x1, .L.str.79 - add x1, x1, :lo12:.L.str.79 - ldr x0, [x8] - bl _dev_info - b .LBB16_250 -.LBB16_480: - ldr x8, [sp, #16] - adrp x1, .L.str.85 - add x1, x1, :lo12:.L.str.85 - ldr x0, [x8] - bl _dev_info - b .LBB16_431 -.LBB16_481: - ldr x8, [sp, #16] - adrp x1, .L.str.84 - add x1, x1, :lo12:.L.str.84 - ldr x0, [x8] - bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_395 - b .LBB16_430 -.LBB16_482: - ldr x8, [sp, #16] - adrp x1, .L.str.89 - add x1, x1, :lo12:.L.str.89 - ldr x0, [x8] - bl _dev_info - b .LBB16_419 -.LBB16_483: - ldr x8, [sp, #16] - adrp x1, .L.str.84 - add x1, x1, :lo12:.L.str.84 - ldr x0, [x8] - bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_402 - b .LBB16_430 -.LBB16_484: - ldr x8, [sp, #16] - adrp x1, .L.str.99 - add x1, x1, :lo12:.L.str.99 - ldr x0, [x8] - bl _dev_info - b .LBB16_370 -.LBB16_485: + b .LBB16_252 +.LBB16_522: ldr x9, [x19, #448] - adrp x1, .L.str.100 + adrp x1, .L.str.103 ldr x0, [x19, #328] and w3, w8, #0xff - add x1, x1, :lo12:.L.str.100 + add x1, x1, :lo12:.L.str.103 ldr w2, [x9, #40] bl _dev_info - b .LBB16_456 -.LBB16_486: + b .LBB16_492 +.LBB16_523: ldr x8, [sp, #16] - adrp x1, .L.str.94 - add x1, x1, :lo12:.L.str.94 + adrp x1, .L.str.97 + add x1, x1, :lo12:.L.str.97 ldr x0, [x8] bl _dev_info - b .LBB16_457 -.LBB16_487: - adrp x1, .L.str.79 + b .LBB16_493 +.LBB16_524: + adrp x1, .L.str.81 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.79 + add x1, x1, :lo12:.L.str.81 bl _dev_info ldr x9, [x19, #448] - b .LBB16_423 -.LBB16_488: + b .LBB16_306 +.LBB16_525: ldr x8, [sp, #16] - adrp x1, .L.str.101 - add x1, x1, :lo12:.L.str.101 + adrp x1, .L.str.104 + add x1, x1, :lo12:.L.str.104 ldr x0, [x8] bl _dev_info - b .LBB16_466 + b .LBB16_503 .Lfunc_end16: .size ebc_thread, .Lfunc_end16-ebc_thread .section .rodata,"a",@progbits .p2align 1 .LJTI16_0: - .hword (.LBB16_100-.LBB16_100)>>2 - .hword (.LBB16_427-.LBB16_100)>>2 - .hword (.LBB16_399-.LBB16_100)>>2 - .hword (.LBB16_393-.LBB16_100)>>2 - .hword (.LBB16_100-.LBB16_100)>>2 + .hword (.LBB16_103-.LBB16_103)>>2 + .hword (.LBB16_310-.LBB16_103)>>2 + .hword (.LBB16_282-.LBB16_103)>>2 + .hword (.LBB16_276-.LBB16_103)>>2 + .hword (.LBB16_103-.LBB16_103)>>2 .text .p2align 2 @@ -6047,605 +6557,681 @@ get_overlay_image2: str x30, [x18], #8 adrp x8, global_ebc stp x26, x25, [sp, #64] - stp x29, x30, [sp, #32] - add x29, sp, #32 - stp x24, x23, [sp, #80] - mov x23, x2 - ldr x9, [x8, :lo12:global_ebc] - stp x22, x21, [sp, #96] stp x20, x19, [sp, #112] mov x19, x5 + stp x29, x30, [sp, #32] + add x29, sp, #32 + ldr x9, [x8, :lo12:global_ebc] + stp x24, x23, [sp, #80] + stp x22, x21, [sp, #96] mov x22, x4 mov x21, x3 - ldp w25, w11, [x9, #116] + mov x23, x2 + ldp w20, w25, [x9, #116] mov x24, x1 ldr x8, [x5, #216] cmp w6, #3 stp x28, x27, [sp, #48] stur x0, [x29, #-8] - lsr w10, w25, #3 - str w10, [sp, #16] + lsr w10, w20, #3 + str w10, [sp, #12] b.eq .LBB18_3 add x9, x19, #60 cmp w6, #2 - str x9, [sp, #8] + str x9, [sp, #16] b.ne .LBB18_4 - cmp w11, #0 + cmp w25, #0 mov w27, wzr - cinc w9, w11, lt - asr w11, w9, #1 + cinc w9, w25, lt + asr w25, w9, #1 b .LBB18_5 .LBB18_3: - cmp w11, #0 - cinc w9, w11, lt + cmp w25, #0 + cinc w9, w25, lt asr w27, w9, #1 mul w9, w27, w10 - mul w10, w27, w25 + mul w10, w27, w20 sbfiz x9, x9, #3, #32 add x21, x21, x10 add x24, x24, x9 add x23, x23, x9 add x22, x22, x10 add x9, x19, #64 - str x9, [sp, #8] + str x9, [sp, #16] b .LBB18_5 .LBB18_4: mov w27, wzr .LBB18_5: - lsr w26, w25, #2 - subs w9, w11, w27 - ldr w20, [x8, #40] + ldr w8, [x8, #40] + lsr w26, w20, #2 + subs w9, w25, w27 mov w1, wzr mul w28, w27, w26 + str w8, [sp, #8] ldur x8, [x29, #-8] mul w9, w9, w26 - stur w11, [x29, #-12] add x0, x8, w28, sxtw sxtw x2, w9 bl memset - ldur w9, [x29, #-12] - mov w3, wzr - cmp w9, w27 - b.le .LBB18_59 - ldr w10, [sp, #16] - mov w3, wzr - sub w8, w20, #7 - lsl w12, w26, #1 + mov w30, w25 + mov w4, wzr + cmp w25, w27 + b.le .LBB18_122 + ldp w8, w9, [sp, #8] + mov w25, w20 + mov w4, wzr mov w11, #56 - cmp w10, #1 - csinc w10, w10, wzr, hi - str w12, [sp, #16] + cmp w9, #1 + sub w8, w8, #2 + csinc w10, w9, wzr, hi + lsl w9, w26, #1 lsl x10, x10, #3 - b .LBB18_10 + b .LBB18_9 .LBB18_7: - add x9, x24, x12 - add x13, x23, x12 - add x24, x9, x0 - add x9, x22, x12 + add x13, x24, x12 + add x14, x23, x12 + add x24, x13, x0 + add x13, x22, x12 add x12, x21, x12 - add x23, x13, x0 - add x22, x9, x0 + add x23, x14, x0 + add x22, x13, x0 add x21, x12, x0 .LBB18_8: - ldur w9, [x29, #-12] - ldr w12, [sp, #16] -.LBB18_9: add w27, w27, #2 - add w28, w28, w12 - cmp w27, w9 - b.ge .LBB18_59 -.LBB18_10: + add w28, w28, w9 + cmp w27, w30 + b.ge .LBB18_122 +.LBB18_9: cmp w25, #8 - b.lo .LBB18_9 - ldur x9, [x29, #-8] + b.lo .LBB18_8 + ldur x13, [x29, #-8] mov x12, xzr - add x13, x9, w28, sxtw + add x13, x13, w28, sxtw mov x14, x13 b .LBB18_15 +.LBB18_11: + add x1, x23, x12 + lsr x2, x17, #56 + mov w17, wzr + strb w2, [x1, #7] .LBB18_12: - str x15, [x23, x12] + orr w16, w16, w15, lsl #28 + strb w17, [x0, #7] .LBB18_13: - mov w3, #1 - str w17, [x14] + mov w4, #1 + str w16, [x14] .LBB18_14: add x14, x14, #4 add x12, x12, #8 cmp x10, x12 - b.eq .LBB18_34 + b.eq .LBB18_65 .LBB18_15: - ldr x16, [x24, x12] - cmp w8, #5 ldr x15, [x23, x12] - and x17, x16, #0xf8f8f8f8f8f8f8f8 - and x0, x15, #0xf8f8f8f8f8f8f8f8 - csel x16, x17, x16, lo - csel x15, x0, x15, lo - cmp x16, x15 - b.eq .LBB18_14 - eor x1, x15, x16 - tst x1, #0xff - b.eq .LBB18_18 - ldrb w17, [x22, x12] - lsl w3, w15, #2 + cmp w8, #9 + b.hi .LBB18_17 + and x15, x15, #0xf8f8f8f8f8f8f8f8 + str x15, [x23, x12] +.LBB18_17: + ldr x17, [x24, x12] + eor x0, x17, x15 + cbz x0, .LBB18_14 + tst x0, #0xff + b.eq .LBB18_24 + ldrb w16, [x22, x12] ldrb w2, [x21, x12] - and x3, x3, #0x3e0 - bfxil x3, x16, #3, #5 - mov x4, x15 - bfxil x4, x16, #0, #8 - add x0, x19, x17, lsl #3 - cmp w17, #0 - cinc x17, x11, ne - add w5, w2, #1 - ldr x0, [x0, #120] - ldrb w17, [x19, x17] - add x0, x0, x2, lsl #10 - cmp w17, w5, uxtb - ldrb w17, [x0, x3] - cset w0, eq - csel x15, x4, x15, eq - csinc w2, wzr, w2, eq - strb w2, [x21, x12] - b .LBB18_19 -.LBB18_18: - mov w17, wzr - mov w0, wzr -.LBB18_19: - add x2, x21, x12 - tst x1, #0xff00 - b.eq .LBB18_21 - add x3, x22, x12 - ldrb w5, [x2, #1] - lsr x6, x15, #6 - lsr x7, x16, #8 - and x6, x6, #0x3e0 - ldrb w3, [x3, #1] - bfxil x6, x16, #11, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 + add x1, x19, x16, lsl #3 + cmp w16, #0 cinc x3, x11, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #8, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w17, w17, w4, lsl #4 - csel x15, x3, x15, eq - strb w5, [x2, #1] -.LBB18_21: - tst x1, #0xff0000 - b.eq .LBB18_23 - add x3, x22, x12 - ldrb w5, [x2, #2] - lsr x6, x15, #14 - lsr x7, x16, #16 - and x6, x6, #0x3e0 - ldrb w3, [x3, #2] - bfxil x6, x16, #19, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x11, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #16, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w17, w17, w4, lsl #8 - csel x15, x3, x15, eq - strb w5, [x2, #2] + ldr x16, [x1, #120] + lsl w1, w15, #2 + and x1, x1, #0x3e0 + ldrb w4, [x19, x3] + bfxil x1, x17, #3, #5 + add w3, w2, #1 + add x16, x16, x2, lsl #10 + ldrb w16, [x16, x1] + cmp w4, w3, uxtb + b.ne .LBB18_23 + mov x2, x17 + mov x1, x15 + cmp w8, #9 + b.hi .LBB18_22 + and x2, x17, #0xfffffffffffffff8 + str x2, [x24, x12] + ldr x1, [x23, x12] +.LBB18_22: + mov w3, wzr + bfxil x1, x2, #0, #8 + str x1, [x23, x12] .LBB18_23: - add x2, x21, x12 - tst x1, #0xff000000 - b.eq .LBB18_25 - add x3, x22, x12 - ldrb w5, [x2, #3] - lsr x6, x15, #22 - lsr x7, x16, #24 - and x6, x6, #0x3e0 - ldrb w3, [x3, #3] - bfxil x6, x16, #27, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x11, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #24, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w17, w17, w4, lsl #12 - csel x15, x3, x15, eq - strb w5, [x2, #3] + strb w3, [x21, x12] + b .LBB18_25 +.LBB18_24: + mov w16, wzr .LBB18_25: - tst x1, #0xff00000000 - b.eq .LBB18_27 - add x3, x22, x12 - ldrb w5, [x2, #4] - lsr x6, x15, #30 - lsr x7, x16, #32 - and x6, x6, #0x3e0 - ldrb w3, [x3, #4] - bfxil x6, x16, #35, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x11, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #32, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w17, w17, w4, lsl #16 - csel x15, x3, x15, eq - strb w5, [x2, #4] -.LBB18_27: - add x2, x21, x12 - tst x1, #0xff0000000000 - b.eq .LBB18_29 - add x3, x22, x12 - ldrb w5, [x2, #5] - lsr x6, x15, #38 - lsr x7, x16, #40 - and x6, x6, #0x3e0 - ldrb w3, [x3, #5] - bfxil x6, x16, #43, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x11, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #40, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w17, w17, w4, lsl #20 - csel x15, x3, x15, eq - strb w5, [x2, #5] -.LBB18_29: - tst x1, #0xff000000000000 + add x1, x21, x12 + tst x0, #0xff00 b.eq .LBB18_31 - add x3, x22, x12 - ldrb w5, [x2, #6] - lsr x6, x15, #46 - lsr x7, x16, #48 - and x6, x6, #0x3e0 - ldrb w3, [x3, #6] - bfxil x6, x16, #51, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x11, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #48, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w17, w17, w4, lsl #24 - csel x15, x3, x15, eq - strb w5, [x2, #6] + add x2, x22, x12 + ldrb w4, [x1, #1] + ldrb w2, [x2, #1] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x11, ne + ldr x2, [x3, #120] + lsr x3, x15, #6 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x17, #11, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB18_30 + ldr x3, [x24, x12] + cmp w8, #9 + b.hi .LBB18_29 + and x3, x3, #0xfffffffffffff8ff + str x3, [x24, x12] +.LBB18_29: + add x4, x23, x12 + lsr x5, x3, #8 + mov w3, wzr + strb w5, [x4, #1] +.LBB18_30: + orr w16, w16, w2, lsl #4 + strb w3, [x1, #1] .LBB18_31: - lsr x1, x1, #56 - cbnz x1, .LBB18_33 - cbnz w0, .LBB18_12 - b .LBB18_13 -.LBB18_33: - add x1, x22, x12 - add x2, x21, x12 - lsr x5, x15, #54 - and x5, x5, #0x3e0 - ldrb w1, [x1, #7] - bfxil x5, x16, #59, #5 - bfxil x16, x15, #0, #56 - add x3, x19, x1, lsl #3 + tst x0, #0xff0000 + b.eq .LBB18_37 + add x2, x22, x12 + ldrb w4, [x1, #2] + ldrb w2, [x2, #2] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x11, ne + ldr x2, [x3, #120] + lsr x3, x15, #14 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x17, #19, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB18_36 + ldr x3, [x24, x12] + cmp w8, #9 + b.hi .LBB18_35 + and x3, x3, #0xfffffffffff8ffff + str x3, [x24, x12] +.LBB18_35: + add x4, x23, x12 + lsr x5, x3, #16 + mov w3, wzr + strb w5, [x4, #2] +.LBB18_36: + orr w16, w16, w2, lsl #8 + strb w3, [x1, #2] +.LBB18_37: + add x1, x21, x12 + tst x0, #0xff000000 + b.eq .LBB18_43 + add x2, x22, x12 + ldrb w4, [x1, #3] + ldrb w2, [x2, #3] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x11, ne + ldr x2, [x3, #120] + lsr x3, x15, #22 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x17, #27, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB18_42 + ldr x3, [x24, x12] + cmp w8, #9 + b.hi .LBB18_41 + and x3, x3, #0xfffffffff8ffffff + str x3, [x24, x12] +.LBB18_41: + add x4, x23, x12 + lsr x5, x3, #24 + mov w3, wzr + strb w5, [x4, #3] +.LBB18_42: + orr w16, w16, w2, lsl #12 + strb w3, [x1, #3] +.LBB18_43: + tst x0, #0xff00000000 + b.eq .LBB18_49 + add x2, x22, x12 + ldrb w4, [x1, #4] + ldrb w2, [x2, #4] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x11, ne + ldr x2, [x3, #120] + lsr x3, x15, #30 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x17, #35, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB18_48 + ldr x3, [x24, x12] + cmp w8, #9 + b.hi .LBB18_47 + and x3, x3, #0xfffffff8ffffffff + str x3, [x24, x12] +.LBB18_47: + add x4, x23, x12 + lsr x5, x3, #32 + mov w3, wzr + strb w5, [x4, #4] +.LBB18_48: + orr w16, w16, w2, lsl #16 + strb w3, [x1, #4] +.LBB18_49: + add x1, x21, x12 + tst x0, #0xff0000000000 + b.eq .LBB18_55 + add x2, x22, x12 + ldrb w4, [x1, #5] + ldrb w2, [x2, #5] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x11, ne + ldr x2, [x3, #120] + lsr x3, x15, #38 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x17, #43, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB18_54 + ldr x3, [x24, x12] + cmp w8, #9 + b.hi .LBB18_53 + and x3, x3, #0xfffff8ffffffffff + str x3, [x24, x12] +.LBB18_53: + add x4, x23, x12 + lsr x5, x3, #40 + mov w3, wzr + strb w5, [x4, #5] +.LBB18_54: + orr w16, w16, w2, lsl #20 + strb w3, [x1, #5] +.LBB18_55: + tst x0, #0xff000000000000 + b.eq .LBB18_61 + add x2, x22, x12 + ldrb w4, [x1, #6] + ldrb w2, [x2, #6] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x11, ne + ldr x2, [x3, #120] + lsr x3, x15, #46 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x17, #51, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB18_60 + ldr x3, [x24, x12] + cmp w8, #9 + b.hi .LBB18_59 + and x3, x3, #0xfff8ffffffffffff + str x3, [x24, x12] +.LBB18_59: + add x4, x23, x12 + lsr x5, x3, #48 + mov w3, wzr + strb w5, [x4, #6] +.LBB18_60: + orr w16, w16, w2, lsl #24 + strb w3, [x1, #6] +.LBB18_61: + lsr x0, x0, #56 + cbz x0, .LBB18_13 + add x0, x22, x12 + lsr x15, x15, #54 + and x15, x15, #0x3e0 + bfxil x15, x17, #59, #5 + ldrb w1, [x0, #7] + add x0, x21, x12 + add x2, x19, x1, lsl #3 + ldrb w3, [x0, #7] cmp w1, #0 - ldrb w1, [x2, #7] - cinc x4, x11, ne - ldr x3, [x3, #120] - ldrb w4, [x19, x4] - add x3, x3, x1, lsl #10 - ldrb w3, [x3, x5] - add w5, w1, #1 - cmp w4, w5, uxtb - cset w4, eq - csinc w1, wzr, w1, eq - orr w0, w4, w0 - csel x15, x16, x15, eq - orr w17, w17, w3, lsl #28 - strb w1, [x2, #7] - tbnz w0, #0, .LBB18_12 - b .LBB18_13 -.LBB18_34: + ldr x1, [x2, #120] + cinc x2, x11, ne + add x17, x1, x3, lsl #10 + ldrb w1, [x19, x2] + ldrb w15, [x17, x15] + add w17, w3, #1 + cmp w1, w17, uxtb + b.ne .LBB18_12 + ldr x17, [x24, x12] + cmp w8, #9 + b.hi .LBB18_11 + and x17, x17, #0xf8ffffffffffffff + str x17, [x24, x12] + b .LBB18_11 +.LBB18_65: add x14, x24, x12 add x15, x23, x12 add x16, x22, x12 add x17, x21, x12 cmp w25, #8 - b.hs .LBB18_36 + b.hs .LBB18_67 mov x22, x16 mov x21, x17 mov x23, x15 mov x24, x14 b .LBB18_8 -.LBB18_36: +.LBB18_67: mov x0, xzr - b .LBB18_40 -.LBB18_37: - str x1, [x15, x0] -.LBB18_38: - ldr w9, [x13] - orr w9, w9, w3 - mov w3, #1 - str w9, [x13] -.LBB18_39: + b .LBB18_72 +.LBB18_68: + add x5, x15, x0 + lsr x6, x2, #56 + mov w2, wzr + strb w6, [x5, #7] +.LBB18_69: + orr w4, w4, w1, lsl #30 + strb w2, [x3, #7] +.LBB18_70: + ldr w1, [x13] + orr w1, w1, w4 + mov w4, #1 + str w1, [x13] +.LBB18_71: add x13, x13, #4 add x0, x0, #8 cmp x10, x0 b.eq .LBB18_7 -.LBB18_40: - ldr x2, [x14, x0] +.LBB18_72: ldr x1, [x15, x0] - cmp x2, x1 - b.eq .LBB18_39 - eor x5, x1, x2 - tst x5, #0xff - b.eq .LBB18_43 - ldrb w3, [x16, x0] - lsl w7, w1, #2 + cmp w8, #9 + b.hi .LBB18_74 + and x1, x1, #0xf8f8f8f8f8f8f8f8 + str x1, [x15, x0] +.LBB18_74: + ldr x2, [x14, x0] + eor x3, x2, x1 + cbz x3, .LBB18_71 + tst x3, #0xff + b.eq .LBB18_81 + ldrb w4, [x16, x0] ldrb w6, [x17, x0] - mov x20, x1 - bfxil x20, x2, #0, #8 - add x4, x19, x3, lsl #3 - cmp w3, #0 - ldr x3, [x4, #120] - and x4, x7, #0x3e0 + add x5, x19, x4, lsl #3 + cmp w4, #0 cinc x7, x11, ne - bfxil x4, x2, #3, #5 - add x3, x3, x6, lsl #10 + ldr x4, [x5, #120] + lsl w5, w1, #2 + and x5, x5, #0x3e0 ldrb w7, [x19, x7] - ldrb w3, [x3, x4] - add w4, w6, #1 - cmp w7, w4, uxtb - cset w4, eq - lsl w3, w3, #2 - csel x1, x20, x1, eq - csinc w6, wzr, w6, eq + bfxil x5, x2, #3, #5 + add x4, x4, x6, lsl #10 + add w6, w6, #1 + ldrb w4, [x4, x5] + cmp w7, w6, uxtb + b.ne .LBB18_80 + mov x7, x2 + mov x5, x1 + cmp w8, #9 + b.hi .LBB18_79 + and x7, x2, #0xfffffffffffffff8 + str x7, [x14, x0] + ldr x5, [x15, x0] +.LBB18_79: + mov w6, wzr + bfxil x5, x7, #0, #8 + str x5, [x15, x0] +.LBB18_80: + lsl w4, w4, #2 strb w6, [x17, x0] - b .LBB18_44 -.LBB18_43: + b .LBB18_82 +.LBB18_81: mov w4, wzr - mov w3, wzr -.LBB18_44: - add x6, x17, x0 - tst x5, #0xff00 - b.eq .LBB18_46 - add x7, x16, x0 - ldrb w26, [x6, #1] - lsr x30, x1, #6 - lsr x9, x2, #8 - and x30, x30, #0x3e0 - ldrb w7, [x7, #1] - bfxil x30, x2, #11, #5 - add x20, x19, x7, lsl #3 - cmp w7, #0 - cinc x7, x11, ne - ldr x20, [x20, #120] - ldrb w7, [x19, x7] - add x20, x20, x26, lsl #10 - ldrb w20, [x20, x30] - add w30, w26, #1 - cmp w7, w30, uxtb - mov x7, x1 - bfi x7, x9, #8, #8 - cset w9, eq - csinc w26, wzr, w26, eq - csel x1, x7, x1, eq - orr w3, w3, w20, lsl #6 - orr w4, w9, w4 - strb w26, [x6, #1] -.LBB18_46: - tst x5, #0xff0000 - b.eq .LBB18_48 - add x9, x16, x0 - ldrb w20, [x6, #2] - lsr x26, x1, #14 - lsr x30, x2, #16 - and x26, x26, #0x3e0 - ldrb w9, [x9, #2] - bfxil x26, x2, #19, #5 - add x7, x19, x9, lsl #3 - cmp w9, #0 - cinc x9, x11, ne - ldr x7, [x7, #120] - ldrb w9, [x19, x9] - add x7, x7, x20, lsl #10 - ldrb w7, [x7, x26] - add w26, w20, #1 - cmp w9, w26, uxtb - mov x9, x1 - bfi x9, x30, #16, #8 - cset w26, eq - csinc w20, wzr, w20, eq - csel x1, x9, x1, eq - orr w3, w3, w7, lsl #10 - orr w4, w26, w4 - strb w20, [x6, #2] -.LBB18_48: - add x6, x17, x0 - tst x5, #0xff000000 - b.eq .LBB18_50 - add x9, x16, x0 - ldrb w20, [x6, #3] - lsr x26, x1, #22 - lsr x30, x2, #24 - and x26, x26, #0x3e0 - ldrb w9, [x9, #3] - bfxil x26, x2, #27, #5 - add x7, x19, x9, lsl #3 - cmp w9, #0 - cinc x9, x11, ne - ldr x7, [x7, #120] - ldrb w9, [x19, x9] - add x7, x7, x20, lsl #10 - ldrb w7, [x7, x26] - add w26, w20, #1 - cmp w9, w26, uxtb - mov x9, x1 - bfi x9, x30, #24, #8 - cset w26, eq - csinc w20, wzr, w20, eq - csel x1, x9, x1, eq - orr w3, w3, w7, lsl #14 - orr w4, w26, w4 - strb w20, [x6, #3] -.LBB18_50: - tst x5, #0xff00000000 - b.eq .LBB18_52 - add x9, x16, x0 - ldrb w20, [x6, #4] - lsr x26, x1, #30 - lsr x30, x2, #32 - and x26, x26, #0x3e0 - ldrb w9, [x9, #4] - bfxil x26, x2, #35, #5 - add x7, x19, x9, lsl #3 - cmp w9, #0 - cinc x9, x11, ne - ldr x7, [x7, #120] - ldrb w9, [x19, x9] - add x7, x7, x20, lsl #10 - ldrb w7, [x7, x26] - add w26, w20, #1 - cmp w9, w26, uxtb - mov x9, x1 - bfi x9, x30, #32, #8 - cset w26, eq - csinc w20, wzr, w20, eq - csel x1, x9, x1, eq - orr w3, w3, w7, lsl #18 - orr w4, w26, w4 - strb w20, [x6, #4] -.LBB18_52: - add x6, x17, x0 - tst x5, #0xff0000000000 - b.eq .LBB18_54 - add x9, x16, x0 - ldrb w20, [x6, #5] - lsr x26, x1, #38 - lsr x30, x2, #40 - and x26, x26, #0x3e0 - ldrb w9, [x9, #5] - bfxil x26, x2, #43, #5 - add x7, x19, x9, lsl #3 - cmp w9, #0 - cinc x9, x11, ne - ldr x7, [x7, #120] - ldrb w9, [x19, x9] - add x7, x7, x20, lsl #10 - ldrb w7, [x7, x26] - add w26, w20, #1 - cmp w9, w26, uxtb - mov x9, x1 - bfi x9, x30, #40, #8 - cset w26, eq - csinc w20, wzr, w20, eq - csel x1, x9, x1, eq - orr w3, w3, w7, lsl #22 - orr w4, w26, w4 - strb w20, [x6, #5] -.LBB18_54: - tst x5, #0xff000000000000 - b.eq .LBB18_56 - add x9, x16, x0 - ldrb w20, [x6, #6] - lsr x26, x1, #46 - lsr x30, x2, #48 - and x26, x26, #0x3e0 - ldrb w9, [x9, #6] - bfxil x26, x2, #51, #5 - add x7, x19, x9, lsl #3 - cmp w9, #0 - cinc x9, x11, ne - ldr x7, [x7, #120] - ldrb w9, [x19, x9] - add x7, x7, x20, lsl #10 - ldrb w7, [x7, x26] - add w26, w20, #1 - cmp w9, w26, uxtb - mov x9, x1 - bfi x9, x30, #48, #8 - cset w26, eq - csinc w20, wzr, w20, eq - csel x1, x9, x1, eq - orr w3, w3, w7, lsl #26 - orr w4, w26, w4 - strb w20, [x6, #6] -.LBB18_56: - lsr x9, x5, #56 - cbnz x9, .LBB18_58 - cbnz w4, .LBB18_37 - b .LBB18_38 -.LBB18_58: - add x9, x16, x0 +.LBB18_82: add x5, x17, x0 - lsr x20, x1, #54 - and x20, x20, #0x3e0 - ldrb w9, [x9, #7] - bfxil x20, x2, #59, #5 - bfxil x2, x1, #0, #56 - add x6, x19, x9, lsl #3 - cmp w9, #0 - ldrb w9, [x5, #7] - cinc x7, x11, ne - ldr x6, [x6, #120] - ldrb w7, [x19, x7] - add x6, x6, x9, lsl #10 - ldrb w6, [x6, x20] - add w20, w9, #1 - cmp w7, w20, uxtb - cset w7, eq - csinc w9, wzr, w9, eq - orr w4, w7, w4 - csel x1, x2, x1, eq - orr w3, w3, w6, lsl #30 - strb w9, [x5, #7] - tbnz w4, #0, .LBB18_37 - b .LBB18_38 -.LBB18_59: - ldr x8, [sp, #8] + tst x3, #0xff00 + b.eq .LBB18_88 + add x6, x16, x0 + ldrb w20, [x5, #1] + ldrb w6, [x6, #1] + add x7, x19, x6, lsl #3 + cmp w6, #0 + cinc x26, x11, ne + ldr x6, [x7, #120] + lsr x7, x1, #6 + and x7, x7, #0x3e0 + ldrb w26, [x19, x26] + bfxil x7, x2, #11, #5 + add x6, x6, x20, lsl #10 + ldrb w6, [x6, x7] + add w7, w20, #1 + cmp w26, w7, uxtb + b.ne .LBB18_87 + ldr x7, [x14, x0] + cmp w8, #9 + b.hi .LBB18_86 + and x7, x7, #0xfffffffffffff8ff + str x7, [x14, x0] +.LBB18_86: + add x20, x15, x0 + lsr x26, x7, #8 + mov w7, wzr + strb w26, [x20, #1] +.LBB18_87: + orr w4, w4, w6, lsl #6 + strb w7, [x5, #1] +.LBB18_88: + tst x3, #0xff0000 + b.eq .LBB18_94 + add x6, x16, x0 + ldrb w20, [x5, #2] + ldrb w6, [x6, #2] + add x7, x19, x6, lsl #3 + cmp w6, #0 + cinc x26, x11, ne + ldr x6, [x7, #120] + lsr x7, x1, #14 + and x7, x7, #0x3e0 + ldrb w26, [x19, x26] + bfxil x7, x2, #19, #5 + add x6, x6, x20, lsl #10 + ldrb w6, [x6, x7] + add w7, w20, #1 + cmp w26, w7, uxtb + b.ne .LBB18_93 + ldr x7, [x14, x0] + cmp w8, #9 + b.hi .LBB18_92 + and x7, x7, #0xfffffffffff8ffff + str x7, [x14, x0] +.LBB18_92: + add x20, x15, x0 + lsr x26, x7, #16 + mov w7, wzr + strb w26, [x20, #2] +.LBB18_93: + orr w4, w4, w6, lsl #10 + strb w7, [x5, #2] +.LBB18_94: + add x5, x17, x0 + tst x3, #0xff000000 + b.eq .LBB18_100 + add x6, x16, x0 + ldrb w20, [x5, #3] + ldrb w6, [x6, #3] + add x7, x19, x6, lsl #3 + cmp w6, #0 + cinc x26, x11, ne + ldr x6, [x7, #120] + lsr x7, x1, #22 + and x7, x7, #0x3e0 + ldrb w26, [x19, x26] + bfxil x7, x2, #27, #5 + add x6, x6, x20, lsl #10 + ldrb w6, [x6, x7] + add w7, w20, #1 + cmp w26, w7, uxtb + b.ne .LBB18_99 + ldr x7, [x14, x0] + cmp w8, #9 + b.hi .LBB18_98 + and x7, x7, #0xfffffffff8ffffff + str x7, [x14, x0] +.LBB18_98: + add x20, x15, x0 + lsr x26, x7, #24 + mov w7, wzr + strb w26, [x20, #3] +.LBB18_99: + orr w4, w4, w6, lsl #14 + strb w7, [x5, #3] +.LBB18_100: + tst x3, #0xff00000000 + b.eq .LBB18_106 + add x6, x16, x0 + ldrb w20, [x5, #4] + ldrb w6, [x6, #4] + add x7, x19, x6, lsl #3 + cmp w6, #0 + cinc x26, x11, ne + ldr x6, [x7, #120] + lsr x7, x1, #30 + and x7, x7, #0x3e0 + ldrb w26, [x19, x26] + bfxil x7, x2, #35, #5 + add x6, x6, x20, lsl #10 + ldrb w6, [x6, x7] + add w7, w20, #1 + cmp w26, w7, uxtb + b.ne .LBB18_105 + ldr x7, [x14, x0] + cmp w8, #9 + b.hi .LBB18_104 + and x7, x7, #0xfffffff8ffffffff + str x7, [x14, x0] +.LBB18_104: + add x20, x15, x0 + lsr x26, x7, #32 + mov w7, wzr + strb w26, [x20, #4] +.LBB18_105: + orr w4, w4, w6, lsl #18 + strb w7, [x5, #4] +.LBB18_106: + add x5, x17, x0 + tst x3, #0xff0000000000 + b.eq .LBB18_112 + add x6, x16, x0 + ldrb w20, [x5, #5] + ldrb w6, [x6, #5] + add x7, x19, x6, lsl #3 + cmp w6, #0 + cinc x26, x11, ne + ldr x6, [x7, #120] + lsr x7, x1, #38 + and x7, x7, #0x3e0 + ldrb w26, [x19, x26] + bfxil x7, x2, #43, #5 + add x6, x6, x20, lsl #10 + ldrb w6, [x6, x7] + add w7, w20, #1 + cmp w26, w7, uxtb + b.ne .LBB18_111 + ldr x7, [x14, x0] + cmp w8, #9 + b.hi .LBB18_110 + and x7, x7, #0xfffff8ffffffffff + str x7, [x14, x0] +.LBB18_110: + add x20, x15, x0 + lsr x26, x7, #40 + mov w7, wzr + strb w26, [x20, #5] +.LBB18_111: + orr w4, w4, w6, lsl #22 + strb w7, [x5, #5] +.LBB18_112: + tst x3, #0xff000000000000 + b.eq .LBB18_118 + add x6, x16, x0 + ldrb w20, [x5, #6] + ldrb w6, [x6, #6] + add x7, x19, x6, lsl #3 + cmp w6, #0 + cinc x26, x11, ne + ldr x6, [x7, #120] + lsr x7, x1, #46 + and x7, x7, #0x3e0 + ldrb w26, [x19, x26] + bfxil x7, x2, #51, #5 + add x6, x6, x20, lsl #10 + ldrb w6, [x6, x7] + add w7, w20, #1 + cmp w26, w7, uxtb + b.ne .LBB18_117 + ldr x7, [x14, x0] + cmp w8, #9 + b.hi .LBB18_116 + and x7, x7, #0xfff8ffffffffffff + str x7, [x14, x0] +.LBB18_116: + add x20, x15, x0 + lsr x26, x7, #48 + mov w7, wzr + strb w26, [x20, #6] +.LBB18_117: + orr w4, w4, w6, lsl #26 + strb w7, [x5, #6] +.LBB18_118: + lsr x3, x3, #56 + cbz x3, .LBB18_70 + add x3, x16, x0 + lsr x1, x1, #54 + and x1, x1, #0x3e0 + bfxil x1, x2, #59, #5 + ldrb w5, [x3, #7] + add x3, x17, x0 + add x6, x19, x5, lsl #3 + ldrb w7, [x3, #7] + cmp w5, #0 + ldr x5, [x6, #120] + cinc x6, x11, ne + add x2, x5, x7, lsl #10 + ldrb w5, [x19, x6] + ldrb w1, [x2, x1] + add w2, w7, #1 + cmp w5, w2, uxtb + b.ne .LBB18_69 + ldr x2, [x14, x0] + cmp w8, #9 + b.hi .LBB18_68 + and x2, x2, #0xf8ffffffffffffff + str x2, [x14, x0] + b .LBB18_68 +.LBB18_122: + ldr x8, [sp, #16] ldp x20, x19, [sp, #112] ldp x22, x21, [sp, #96] - str w3, [x8] + str w4, [x8] ldp x24, x23, [sp, #80] ldp x26, x25, [sp, #64] ldp x28, x27, [sp, #48] @@ -6715,7 +7301,7 @@ get_overlay_image: str w13, [sp, #16] stur w12, [x29, #-12] str w9, [sp, #12] - cbz w10, .LBB19_36 + cbz w10, .LBB19_68 sub w8, w8, w28 sub w9, w28, w26 mov w1, wzr @@ -6731,18 +7317,18 @@ get_overlay_image: neg w25, w25 add x24, x24, x8 cmp w28, w26 - b.le .LBB19_37 + b.le .LBB19_69 .LBB19_8: ldp w8, w10, [sp, #12] - mov w17, wzr + mov w1, wzr sxtw x9, w25 mov w12, #56 + ldur w6, [x29, #-12] cmp w10, #1 - sub w8, w8, #7 + sub w8, w8, #2 csinc w11, w10, wzr, hi add x10, x24, #1 lsl x11, x11, #3 - ldur w24, [x29, #-12] b .LBB19_11 .LBB19_9: add x20, x20, x13 @@ -6753,260 +7339,297 @@ get_overlay_image: add w26, w26, #1 add x10, x10, x9 cmp w26, w28 - b.eq .LBB19_38 + b.eq .LBB19_70 .LBB19_11: - cmp w24, #8 + cmp w6, #8 b.lo .LBB19_10 mov x13, xzr mov x14, x10 - b .LBB19_16 + b .LBB19_17 .LBB19_13: - str x15, [x22, x13] + add x1, x22, x13 + lsr x2, x16, #56 + mov w16, wzr + strb w2, [x1, #7] .LBB19_14: - mov w17, #1 - strb w1, [x14] + orr w0, w0, w15, lsl #6 + strb w16, [x17, #7] .LBB19_15: + mov w1, #1 + strb w0, [x14] +.LBB19_16: add x13, x13, #8 add x14, x14, #2 cmp x11, x13 b.eq .LBB19_9 -.LBB19_16: - ldr x16, [x23, x13] - cmp w8, #5 +.LBB19_17: ldr x15, [x22, x13] - and x0, x16, #0xf8f8f8f8f8f8f8f8 - and x1, x15, #0xf8f8f8f8f8f8f8f8 - csel x16, x0, x16, lo - csel x15, x1, x15, lo - cmp x16, x15 - b.eq .LBB19_15 - eor x17, x15, x16 + cmp w8, #9 + b.hi .LBB19_19 + and x15, x15, #0xf8f8f8f8f8f8f8f8 + str x15, [x22, x13] +.LBB19_19: + ldr x16, [x23, x13] + eor x17, x16, x15 + cbz x17, .LBB19_16 tst x17, #0xff - b.eq .LBB19_19 + b.eq .LBB19_26 ldrb w0, [x20, x13] - lsl w3, w15, #2 ldrb w2, [x21, x13] - and x3, x3, #0x3e0 - bfxil x3, x16, #3, #5 - mov x4, x15 - bfxil x4, x16, #0, #8 add x1, x19, x0, lsl #3 cmp w0, #0 - cinc x0, x12, ne - add w5, w2, #1 - ldr x1, [x1, #120] - ldrb w0, [x19, x0] - add x1, x1, x2, lsl #10 - cmp w0, w5, uxtb - ldrb w1, [x1, x3] - cset w0, eq - csel x15, x4, x15, eq - csinc w2, wzr, w2, eq - strb w2, [x21, x13] - b .LBB19_20 -.LBB19_19: - mov w1, wzr - mov w0, wzr -.LBB19_20: - add x2, x21, x13 - tst x17, #0xff00 - b.eq .LBB19_22 - add x3, x20, x13 - ldrb w5, [x2, #1] - lsr x6, x15, #6 - lsr x7, x16, #8 - and x6, x6, #0x3e0 - ldrb w3, [x3, #1] - bfxil x6, x16, #11, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 cinc x3, x12, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #8, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w1, w1, w4, lsl #2 - csel x15, x3, x15, eq - strb w5, [x2, #1] -.LBB19_22: - tst x17, #0xff0000 - b.eq .LBB19_24 - add x3, x20, x13 - ldrb w5, [x2, #2] - lsr x6, x15, #14 - lsr x7, x16, #16 - and x6, x6, #0x3e0 - ldrb w3, [x3, #2] - bfxil x6, x16, #19, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x12, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #16, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w1, w1, w4, lsl #4 - csel x15, x3, x15, eq - strb w5, [x2, #2] + ldr x0, [x1, #120] + lsl w1, w15, #2 + and x1, x1, #0x3e0 + ldrb w4, [x19, x3] + bfxil x1, x16, #3, #5 + add w3, w2, #1 + add x0, x0, x2, lsl #10 + ldrb w0, [x0, x1] + cmp w4, w3, uxtb + b.ne .LBB19_25 + mov x2, x16 + mov x1, x15 + cmp w8, #9 + b.hi .LBB19_24 + and x2, x16, #0xfffffffffffffff8 + str x2, [x23, x13] + ldr x1, [x22, x13] .LBB19_24: - add x2, x21, x13 - tst x17, #0xff000000 - b.eq .LBB19_26 - add x3, x20, x13 - ldrb w5, [x2, #3] - lsr x6, x15, #22 - lsr x7, x16, #24 - and x6, x6, #0x3e0 - ldrb w3, [x3, #3] - bfxil x6, x16, #27, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x12, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #24, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w1, w1, w4, lsl #6 - csel x15, x3, x15, eq - strb w5, [x2, #3] + mov w3, wzr + bfxil x1, x2, #0, #8 + str x1, [x22, x13] +.LBB19_25: + strb w3, [x21, x13] + b .LBB19_27 .LBB19_26: - tst x17, #0xff00000000 - sturb w1, [x14, #-1] - b.eq .LBB19_28 - add x1, x20, x13 - ldrb w4, [x2, #4] - lsr x5, x15, #30 - lsr x6, x16, #32 - and x5, x5, #0x3e0 - ldrb w1, [x1, #4] - bfxil x5, x16, #35, #5 - add w7, w4, #1 - cmp w1, #0 - add x3, x19, x1, lsl #3 - cinc x1, x12, ne - ldr x3, [x3, #120] - ldrb w1, [x19, x1] - add x3, x3, x4, lsl #10 - cmp w1, w7, uxtb - mov x7, x15 - ldrb w1, [x3, x5] - cset w3, eq - bfi x7, x6, #32, #8 - csinc w4, wzr, w4, eq - orr w0, w3, w0 - csel x15, x7, x15, eq - strb w4, [x2, #4] - b .LBB19_29 -.LBB19_28: - mov w1, wzr -.LBB19_29: - add x2, x21, x13 - tst x17, #0xff0000000000 - b.eq .LBB19_31 - add x3, x20, x13 - ldrb w5, [x2, #5] - lsr x6, x15, #38 - lsr x7, x16, #40 - and x6, x6, #0x3e0 - ldrb w3, [x3, #5] - bfxil x6, x16, #43, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x12, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #40, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w1, w1, w4, lsl #2 - csel x15, x3, x15, eq - strb w5, [x2, #5] -.LBB19_31: - tst x17, #0xff000000000000 + mov w0, wzr +.LBB19_27: + add x1, x21, x13 + tst x17, #0xff00 b.eq .LBB19_33 - add x3, x20, x13 - ldrb w5, [x2, #6] - lsr x6, x15, #46 - lsr x7, x16, #48 - and x6, x6, #0x3e0 - ldrb w3, [x3, #6] - bfxil x6, x16, #51, #5 - add x4, x19, x3, lsl #3 - cmp w3, #0 - cinc x3, x12, ne - ldr x4, [x4, #120] - ldrb w3, [x19, x3] - add x4, x4, x5, lsl #10 - ldrb w4, [x4, x6] - add w6, w5, #1 - cmp w3, w6, uxtb - mov x3, x15 - bfi x3, x7, #48, #8 - cset w6, eq - csinc w5, wzr, w5, eq - orr w0, w6, w0 - orr w1, w1, w4, lsl #4 - csel x15, x3, x15, eq - strb w5, [x2, #6] + add x2, x20, x13 + ldrb w4, [x1, #1] + ldrb w2, [x2, #1] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x12, ne + ldr x2, [x3, #120] + lsr x3, x15, #6 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x16, #11, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB19_32 + ldr x3, [x23, x13] + cmp w8, #9 + b.hi .LBB19_31 + and x3, x3, #0xfffffffffffff8ff + str x3, [x23, x13] +.LBB19_31: + add x4, x22, x13 + lsr x5, x3, #8 + mov w3, wzr + strb w5, [x4, #1] +.LBB19_32: + orr w0, w0, w2, lsl #2 + strb w3, [x1, #1] .LBB19_33: - lsr x17, x17, #56 - cbnz x17, .LBB19_35 - cbnz w0, .LBB19_13 - b .LBB19_14 -.LBB19_35: - add x17, x20, x13 - add x2, x21, x13 - lsr x5, x15, #54 - and x5, x5, #0x3e0 - ldrb w17, [x17, #7] - bfxil x5, x16, #59, #5 - bfxil x16, x15, #0, #56 - add x3, x19, x17, lsl #3 - cmp w17, #0 - ldrb w17, [x2, #7] + tst x17, #0xff0000 + b.eq .LBB19_39 + add x2, x20, x13 + ldrb w4, [x1, #2] + ldrb w2, [x2, #2] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x12, ne + ldr x2, [x3, #120] + lsr x3, x15, #14 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x16, #19, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB19_38 + ldr x3, [x23, x13] + cmp w8, #9 + b.hi .LBB19_37 + and x3, x3, #0xfffffffffff8ffff + str x3, [x23, x13] +.LBB19_37: + add x4, x22, x13 + lsr x5, x3, #16 + mov w3, wzr + strb w5, [x4, #2] +.LBB19_38: + orr w0, w0, w2, lsl #4 + strb w3, [x1, #2] +.LBB19_39: + add x1, x21, x13 + tst x17, #0xff000000 + b.eq .LBB19_45 + add x2, x20, x13 + ldrb w4, [x1, #3] + ldrb w2, [x2, #3] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x12, ne + ldr x2, [x3, #120] + lsr x3, x15, #22 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x16, #27, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB19_44 + ldr x3, [x23, x13] + cmp w8, #9 + b.hi .LBB19_43 + and x3, x3, #0xfffffffff8ffffff + str x3, [x23, x13] +.LBB19_43: + add x4, x22, x13 + lsr x5, x3, #24 + mov w3, wzr + strb w5, [x4, #3] +.LBB19_44: + orr w0, w0, w2, lsl #6 + strb w3, [x1, #3] +.LBB19_45: + tst x17, #0xff00000000 + sturb w0, [x14, #-1] + b.eq .LBB19_51 + add x0, x20, x13 + ldrb w3, [x1, #4] + ldrb w0, [x0, #4] + add x2, x19, x0, lsl #3 + cmp w0, #0 cinc x4, x12, ne - ldr x3, [x3, #120] + ldr x0, [x2, #120] + lsr x2, x15, #30 + and x2, x2, #0x3e0 ldrb w4, [x19, x4] - add x3, x3, x17, lsl #10 - ldrb w3, [x3, x5] - add w5, w17, #1 - cmp w4, w5, uxtb - cset w4, eq - csinc w17, wzr, w17, eq - orr w0, w4, w0 - csel x15, x16, x15, eq - orr w1, w1, w3, lsl #6 - strb w17, [x2, #7] - tbnz w0, #0, .LBB19_13 - b .LBB19_14 -.LBB19_36: + bfxil x2, x16, #35, #5 + add x0, x0, x3, lsl #10 + ldrb w0, [x0, x2] + add w2, w3, #1 + cmp w4, w2, uxtb + b.ne .LBB19_50 + ldr x2, [x23, x13] + cmp w8, #9 + b.hi .LBB19_49 + and x2, x2, #0xfffffff8ffffffff + str x2, [x23, x13] +.LBB19_49: + add x3, x22, x13 + lsr x4, x2, #32 + mov w2, wzr + strb w4, [x3, #4] +.LBB19_50: + strb w2, [x1, #4] + b .LBB19_52 +.LBB19_51: + mov w0, wzr +.LBB19_52: + add x1, x21, x13 + tst x17, #0xff0000000000 + b.eq .LBB19_58 + add x2, x20, x13 + ldrb w4, [x1, #5] + ldrb w2, [x2, #5] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x12, ne + ldr x2, [x3, #120] + lsr x3, x15, #38 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x16, #43, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB19_57 + ldr x3, [x23, x13] + cmp w8, #9 + b.hi .LBB19_56 + and x3, x3, #0xfffff8ffffffffff + str x3, [x23, x13] +.LBB19_56: + add x4, x22, x13 + lsr x5, x3, #40 + mov w3, wzr + strb w5, [x4, #5] +.LBB19_57: + orr w0, w0, w2, lsl #2 + strb w3, [x1, #5] +.LBB19_58: + tst x17, #0xff000000000000 + b.eq .LBB19_64 + add x2, x20, x13 + ldrb w4, [x1, #6] + ldrb w2, [x2, #6] + add x3, x19, x2, lsl #3 + cmp w2, #0 + cinc x5, x12, ne + ldr x2, [x3, #120] + lsr x3, x15, #46 + and x3, x3, #0x3e0 + ldrb w5, [x19, x5] + bfxil x3, x16, #51, #5 + add x2, x2, x4, lsl #10 + ldrb w2, [x2, x3] + add w3, w4, #1 + cmp w5, w3, uxtb + b.ne .LBB19_63 + ldr x3, [x23, x13] + cmp w8, #9 + b.hi .LBB19_62 + and x3, x3, #0xfff8ffffffffffff + str x3, [x23, x13] +.LBB19_62: + add x4, x22, x13 + lsr x5, x3, #48 + mov w3, wzr + strb w5, [x4, #6] +.LBB19_63: + orr w0, w0, w2, lsl #4 + strb w3, [x1, #6] +.LBB19_64: + lsr x17, x17, #56 + cbz x17, .LBB19_15 + add x17, x20, x13 + lsr x15, x15, #54 + and x15, x15, #0x3e0 + bfxil x15, x16, #59, #5 + ldrb w1, [x17, #7] + add x17, x21, x13 + add x2, x19, x1, lsl #3 + ldrb w3, [x17, #7] + cmp w1, #0 + ldr x1, [x2, #120] + cinc x2, x12, ne + add x16, x1, x3, lsl #10 + ldrb w1, [x19, x2] + ldrb w15, [x16, x15] + add w16, w3, #1 + cmp w1, w16, uxtb + b.ne .LBB19_14 + ldr x16, [x23, x13] + cmp w8, #9 + b.hi .LBB19_13 + and x16, x16, #0xf8ffffffffffffff + str x16, [x23, x13] + b .LBB19_13 +.LBB19_68: sub w8, w28, w26 mul w9, w26, w25 mov w1, wzr @@ -7017,13 +7640,13 @@ get_overlay_image: bl memset cmp w28, w26 b.gt .LBB19_8 -.LBB19_37: - mov w17, wzr -.LBB19_38: +.LBB19_69: + mov w1, wzr +.LBB19_70: ldur x8, [x29, #-8] ldp x20, x19, [sp, #112] ldp x22, x21, [sp, #96] - str w17, [x8] + str w1, [x8] ldp x24, x23, [sp, #80] ldp x26, x25, [sp, #64] ldp x28, x27, [sp, #48] @@ -7037,511 +7660,1112 @@ get_overlay_image: .p2align 2 .type get_overlay_image_area2,@function get_overlay_image_area2: - sub sp, sp, #176 + sub sp, sp, #160 str x30, [x18], #8 ldr x9, [x5, #232] - stp x29, x30, [sp, #80] - ldp w11, w10, [x5, #80] - stp x28, x27, [sp, #96] - ldp w12, w8, [x9, #48] - ldp w13, w14, [x9, #56] - add w15, w10, #7 - stp x26, x25, [sp, #112] - stp x24, x23, [sp, #128] - add w9, w12, #7 - cmp w12, #0 - csel w12, w9, w12, lt - add w9, w13, #7 - cmp w13, #0 - stp x22, x21, [sp, #144] - csel w9, w9, w13, lt + stp x29, x30, [sp, #64] + ldp w11, w14, [x5, #80] + stp x28, x27, [sp, #80] + ldp w10, w8, [x9, #48] + ldp w13, w15, [x9, #56] + add w9, w14, #7 + stp x26, x25, [sp, #96] + stp x24, x23, [sp, #112] + add w12, w10, #7 cmp w10, #0 - asr w13, w9, #3 - csel w9, w15, w10, lt - add w10, w13, #1 + add w16, w13, #7 + csel w12, w12, w10, lt + cmp w13, #0 + stp x22, x21, [sp, #128] + csel w10, w16, w13, lt + cmp w14, #0 + asr w10, w10, #3 + csel w9, w9, w14, lt + add w13, w10, #1 asr w9, w9, #3 - sub w15, w9, #1 - cmp w10, w9 - csinc w10, w15, w13, ge + sub w16, w9, #1 + cmp w13, w9 + csinc w10, w16, w10, ge sub w13, w11, #1 - cmp w14, w11 - stp x20, x19, [sp, #160] - csel w11, w14, w13, lt - stp x3, x0, [sp, #56] + cmp w15, w11 + stp x20, x19, [sp, #144] + csel w11, w15, w13, lt + str x0, [sp, #56] cmp w8, w11 - str w10, [sp, #76] b.le .LBB20_2 .LBB20_1: - ldp x20, x19, [sp, #160] - ldp x22, x21, [sp, #144] - ldp x24, x23, [sp, #128] - ldp x26, x25, [sp, #112] - ldp x28, x27, [sp, #96] - ldp x29, x30, [sp, #80] + ldp x20, x19, [sp, #144] + ldp x22, x21, [sp, #128] + ldp x24, x23, [sp, #112] + ldp x26, x25, [sp, #96] + ldp x28, x27, [sp, #80] + ldp x29, x30, [sp, #64] ldr x30, [x18, #-8]! - add sp, sp, #176 + add sp, sp, #160 ret .LBB20_2: + asr w15, w12, #3 + sbfx x12, x12, #3, #29 + sbfiz x7, x15, #3, #32 + lsl x15, x12, #2 + add w16, w10, #1 + lsl x19, x12, #3 + sxtw x16, w16 adrp x13, global_ebc - ldr w10, [sp, #76] - ldr x15, [x5, #216] - mul w14, w8, w9 + str x15, [sp, #48] + sub x15, x16, x12 + ldr x17, [x5, #216] + ldr x13, [x13, :lo12:global_ebc] + str x15, [sp, #40] + add x15, x1, x19 + ldr w17, [x17, #40] + ldr w6, [x13, #116] + mul w13, w8, w9 + str x15, [sp, #32] + add x15, x2, x19 + add x2, x7, x3 + mov w19, #56 + lsr w0, w6, #2 + str x15, [sp, #24] + add x15, x4, x7 + mul w1, w0, w8 + sub w4, w17, #2 mov w7, #1 - ldr x16, [x13, :lo12:global_ebc] - asr w13, w12, #3 - add w12, w10, #1 - sbfiz x10, x13, #2, #32 - sbfiz x0, x13, #3, #32 - ldr w15, [x15, #40] - str x16, [sp, #48] - ldr w16, [x16, #116] - str x10, [sp, #40] - add x10, x1, x0 - sxtw x17, w13 - sxtw x12, w12 - mul w16, w16, w8 - str x10, [sp, #32] - add x10, x2, x0 - lsr w16, w16, #2 - sub w2, w15, #7 - str x10, [sp, #24] - lsl w10, w13, #3 - str w10, [sp, #20] - ldr x10, [sp, #64] - add x6, x10, x16 - sub x10, x12, x17 - str x10, [sp, #8] - b .LBB20_4 + str x15, [sp, #16] + add x15, x2, #3 + str x15, [sp, #8] + ldr x15, [sp, #56] + add x6, x15, w1, sxtw .LBB20_3: + mul w17, w8, w0 + ldr x15, [sp, #56] + tst w8, #0x1 + add x17, x15, w17, sxtw + csel x6, x17, x6, eq + cmp w12, w10 + b.le .LBB20_6 +.LBB20_4: add w8, w8, #1 - add w14, w14, w9 cmp w8, w11 b.gt .LBB20_1 -.LBB20_4: - tbnz w8, #0, .LBB20_6 - ldr x10, [sp, #48] - ldr w15, [x10, #116] - ldr x10, [sp, #64] - mul w15, w15, w8 - lsr w15, w15, #2 - add x6, x10, x15 + ldr w14, [x5, #84] + add w13, w13, w9 + b .LBB20_3 .LBB20_6: - ldr w10, [sp, #76] - cmp w13, w10 - b.gt .LBB20_3 - ldr x10, [sp, #32] - sbfiz x15, x14, #3, #32 - ldr w16, [x5, #84] - mov w22, #4 - mov w23, #8 - mov w24, #12 - add x19, x10, x15 - ldr x10, [sp, #24] - mul w16, w16, w8 - mov w26, #16 - mov w27, #20 - mov w28, #24 - add x20, x10, x15 - ldr x10, [sp, #56] - and w15, w8, #0x1 - mov w29, #28 - lsl w21, w15, #1 - ldr x4, [sp, #8] - add x25, x10, w16, sxtw - ldr x10, [sp, #40] - bfi w22, w15, #1, #1 - bfi w23, w15, #1, #1 - bfi w24, w15, #1, #1 - bfi w26, w15, #1, #1 - bfi w27, w15, #1, #1 - bfi w28, w15, #1, #1 - bfi w29, w15, #1, #1 - add x30, x6, x10 - ldr w1, [sp, #20] - b .LBB20_10 + ldp x26, x15, [sp, #40] + sbfiz x17, x13, #3, #32 + mul w14, w14, w8 + mov x20, xzr + sxtw x14, w14 + add x21, x6, x15 + ldr x15, [sp, #32] + add x22, x15, x17 + ldr x15, [sp, #24] + add x23, x15, x17 + ldr x15, [sp, #16] + add x24, x15, x14 + ldr x15, [sp, #8] + add x25, x15, x14 + b .LBB20_12 +.LBB20_7: + mov w1, #1 .LBB20_8: - ldr w10, [x30] - orr w10, w10, w17 - str w10, [x30] + orr w30, w30, w14, lsl #28 .LBB20_9: - add x19, x19, #8 - add x20, x20, #8 - add x30, x30, #4 - add w1, w1, #8 - subs x4, x4, #1 - b.eq .LBB20_3 + strb w1, [x17, #4] .LBB20_10: - ldr x15, [x19] - cmp w2, #5 - ldr x16, [x20] - and x17, x15, #0xf8f8f8f8f8f8f8f8 - and x0, x16, #0xf8f8f8f8f8f8f8f8 - csel x15, x17, x15, lo - csel x16, x0, x16, lo - cmp x15, x16 - b.eq .LBB20_9 - add x0, x25, w1, sxtw - str w7, [x5, #60] - eor x3, x16, x15 - and x12, x3, #0xff - ldrb w17, [x0] - cmp x12, #0 - ccmp w17, #0, #0, ne - b.eq .LBB20_13 - mov w17, wzr - b .LBB20_14 -.LBB20_13: - lsl w12, w16, #2 - ldr x17, [x5, #120] - and x12, x12, #0x3e0 - bfxil x12, x15, #3, #5 - ldrb w12, [x17, x12] - strb w7, [x0] - lsl w17, w12, w21 + ldr w14, [x21] + orr w14, w14, w30 + str w14, [x21] +.LBB20_11: + add x21, x21, #4 + subs x26, x26, #1 + add x20, x20, #8 + b.eq .LBB20_4 +.LBB20_12: + ldr x28, [x23, x20] + cmp w4, #9 + b.hi .LBB20_14 + and x28, x28, #0xf8f8f8f8f8f8f8f8 + str x28, [x23, x20] .LBB20_14: - ldrb w12, [x0, #1] - and x10, x3, #0xff00 - cmp x10, #0 - ccmp w12, #0, #0, ne - b.ne .LBB20_16 - lsr x10, x16, #6 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #11, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #1] - lsl w10, w10, w22 - orr w17, w10, w17 -.LBB20_16: - tst x3, #0xff0000 - b.eq .LBB20_19 - ldrb w10, [x0, #2] - cbnz w10, .LBB20_19 - lsr x10, x16, #14 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #19, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #2] - lsl w10, w10, w23 - orr w17, w10, w17 + add x27, x22, x20 + ldr x29, [x27] + eor x14, x29, x28 + cbz x14, .LBB20_11 + add x17, x25, x20 + and x1, x14, #0xff + str w7, [x5, #60] + tbnz w8, #0, .LBB20_19 + cbz x1, .LBB20_18 + ldurb w15, [x17, #-3] + cbz w15, .LBB20_22 +.LBB20_18: + mov w30, wzr + b .LBB20_32 .LBB20_19: - tst x3, #0xff000000 - b.eq .LBB20_22 - ldrb w10, [x0, #3] - cbnz w10, .LBB20_22 - lsr x10, x16, #22 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #27, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #3] - lsl w10, w10, w24 - orr w17, w10, w17 + cbz x1, .LBB20_21 + ldurb w1, [x17, #-3] + cbz w1, .LBB20_26 +.LBB20_21: + mov w30, wzr + b .LBB20_46 .LBB20_22: - tst x3, #0xff00000000 - b.eq .LBB20_25 - ldrb w10, [x0, #4] - cbnz w10, .LBB20_25 - lsr x10, x16, #30 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #35, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #4] - lsl w10, w10, w26 - orr w17, w10, w17 + ldrb w15, [x24, x20] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsl w15, w28, #2 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #3, #5 + ldr x16, [x16, #120] + ldrb w1, [x5, x1] + ldrb w30, [x16, x15] + cmp w1, #1 + b.ne .LBB20_30 + ldr x1, [x27] + cmp w4, #9 + b.hi .LBB20_25 + and x1, x1, #0xfffffffffffffff8 + str x1, [x27] .LBB20_25: - tst x3, #0xff0000000000 - b.eq .LBB20_28 - ldrb w10, [x0, #5] - cbnz w10, .LBB20_28 - lsr x10, x16, #38 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #43, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #5] - lsl w10, w10, w27 - orr w17, w10, w17 -.LBB20_28: - tst x3, #0xff000000000000 - b.eq .LBB20_31 - ldrb w10, [x0, #6] - cbnz w10, .LBB20_31 - lsr x10, x16, #46 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #51, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #6] - lsl w10, w10, w28 - orr w17, w10, w17 + mov w2, wzr + strb w1, [x23, x20] + b .LBB20_31 +.LBB20_26: + ldrb w1, [x24, x20] + add x2, x5, x1, lsl #3 + cmp w1, #0 + lsl w1, w28, #2 + cinc x3, x19, ne + and x1, x1, #0x3e0 + bfxil x1, x29, #3, #5 + ldr x2, [x2, #120] + ldrb w3, [x5, x3] + ldrb w1, [x2, x1] + cmp w3, #1 + b.ne .LBB20_44 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_29 + and x2, x2, #0xfffffffffffffff8 + str x2, [x27] +.LBB20_29: + mov w3, wzr + strb w2, [x23, x20] + b .LBB20_45 +.LBB20_30: + mov w2, #1 .LBB20_31: - lsr x10, x3, #56 - cbz x10, .LBB20_8 - ldrb w10, [x0, #7] - cbnz w10, .LBB20_8 - lsr x10, x16, #54 - ldr x12, [x5, #120] - and x10, x10, #0x3e0 - bfxil x10, x15, #59, #5 - ldrb w10, [x12, x10] - strb w7, [x0, #7] - lsl w10, w10, w29 - orr w17, w10, w17 + sturb w2, [x17, #-3] +.LBB20_32: + add x17, x25, x20 + add x1, x24, x20 + tst x14, #0xff00 + b.eq .LBB20_34 + ldurb w15, [x17, #-2] + cbz w15, .LBB20_40 +.LBB20_34: + tst x14, #0xff0000 + b.eq .LBB20_62 +.LBB20_35: + ldurb w15, [x17, #-1] + cbnz w15, .LBB20_62 + ldrb w15, [x1, #2] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #14 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #19, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x1] + ldrb w1, [x16, x15] + cmp w2, #1 + b.ne .LBB20_58 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_39 + and x2, x2, #0xfffffffffff8ffff + str x2, [x27] +.LBB20_39: + add x15, x23, x20 + lsr x16, x2, #16 + mov w2, wzr + strb w16, [x15, #2] + b .LBB20_59 +.LBB20_40: + ldrb w15, [x1, #1] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #6 + cinc x2, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #11, #5 + ldr x16, [x16, #120] + ldrb w3, [x5, x2] + ldrb w2, [x16, x15] + cmp w3, #1 + b.ne .LBB20_60 + ldr x3, [x27] + cmp w4, #9 + b.hi .LBB20_43 + and x3, x3, #0xfffffffffffff8ff + str x3, [x27] +.LBB20_43: + add x15, x23, x20 + lsr x16, x3, #8 + mov w3, wzr + strb w16, [x15, #1] + b .LBB20_61 +.LBB20_44: + mov w3, #1 +.LBB20_45: + lsl w30, w1, #2 + sturb w3, [x17, #-3] +.LBB20_46: + add x17, x25, x20 + add x1, x24, x20 + tst x14, #0xff00 + b.eq .LBB20_48 + ldurb w2, [x17, #-2] + cbz w2, .LBB20_54 +.LBB20_48: + tst x14, #0xff0000 + b.eq .LBB20_72 +.LBB20_49: + ldurb w15, [x17, #-1] + cbnz w15, .LBB20_72 + ldrb w15, [x1, #2] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #14 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #19, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x1] + ldrb w1, [x16, x15] + cmp w2, #1 + b.ne .LBB20_68 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_53 + and x2, x2, #0xfffffffffff8ffff + str x2, [x27] +.LBB20_53: + add x15, x23, x20 + lsr x16, x2, #16 + mov w2, wzr + strb w16, [x15, #2] + b .LBB20_69 +.LBB20_54: + ldrb w2, [x1, #1] + add x3, x5, x2, lsl #3 + cmp w2, #0 + lsr x2, x28, #6 + cinc x16, x19, ne + and x2, x2, #0x3e0 + bfxil x2, x29, #11, #5 + ldr x3, [x3, #120] + ldrb w16, [x5, x16] + ldrb w2, [x3, x2] + cmp w16, #1 + b.ne .LBB20_70 + ldr x3, [x27] + cmp w4, #9 + b.hi .LBB20_57 + and x3, x3, #0xfffffffffffff8ff + str x3, [x27] +.LBB20_57: + add x16, x23, x20 + lsr x15, x3, #8 + mov w3, wzr + strb w15, [x16, #1] + b .LBB20_71 +.LBB20_58: + mov w2, #1 +.LBB20_59: + orr w30, w30, w1, lsl #8 + sturb w2, [x17, #-1] + b .LBB20_62 +.LBB20_60: + mov w3, #1 +.LBB20_61: + orr w30, w30, w2, lsl #4 + sturb w3, [x17, #-2] + tst x14, #0xff0000 + b.ne .LBB20_35 +.LBB20_62: + add x1, x24, x20 + tst x14, #0xff000000 + b.eq .LBB20_80 + ldrb w15, [x25, x20] + cbnz w15, .LBB20_80 + ldrb w15, [x1, #3] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #22 + cinc x17, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #27, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x17] + ldrb w17, [x16, x15] + cmp w2, #1 + b.ne .LBB20_78 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_67 + and x2, x2, #0xfffffffff8ffffff + str x2, [x27] +.LBB20_67: + add x15, x23, x20 + lsr x16, x2, #24 + mov w2, wzr + strb w16, [x15, #3] + b .LBB20_79 +.LBB20_68: + mov w2, #1 +.LBB20_69: + orr w30, w30, w1, lsl #10 + sturb w2, [x17, #-1] + b .LBB20_72 +.LBB20_70: + mov w3, #1 +.LBB20_71: + orr w30, w30, w2, lsl #6 + sturb w3, [x17, #-2] + tst x14, #0xff0000 + b.ne .LBB20_49 +.LBB20_72: + add x1, x24, x20 + tst x14, #0xff000000 + b.eq .LBB20_88 + ldrb w15, [x25, x20] + cbnz w15, .LBB20_88 + ldrb w15, [x1, #3] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #22 + cinc x17, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #27, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x17] + ldrb w17, [x16, x15] + cmp w2, #1 + b.ne .LBB20_86 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_77 + and x2, x2, #0xfffffffff8ffffff + str x2, [x27] +.LBB20_77: + add x15, x23, x20 + lsr x16, x2, #24 + mov w2, wzr + strb w16, [x15, #3] + b .LBB20_87 +.LBB20_78: + mov w2, #1 +.LBB20_79: + orr w30, w30, w17, lsl #12 + strb w2, [x25, x20] +.LBB20_80: + add x17, x25, x20 + tst x14, #0xff00000000 + b.eq .LBB20_96 + ldrb w15, [x17, #1] + cbnz w15, .LBB20_96 + ldrb w15, [x1, #4] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #30 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #35, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x1] + ldrb w1, [x16, x15] + cmp w2, #1 + b.ne .LBB20_94 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_85 + and x2, x2, #0xfffffff8ffffffff + str x2, [x27] +.LBB20_85: + add x15, x23, x20 + lsr x16, x2, #32 + mov w2, wzr + strb w16, [x15, #4] + b .LBB20_95 +.LBB20_86: + mov w2, #1 +.LBB20_87: + orr w30, w30, w17, lsl #14 + strb w2, [x25, x20] +.LBB20_88: + add x17, x25, x20 + tst x14, #0xff00000000 + b.eq .LBB20_104 + ldrb w15, [x17, #1] + cbnz w15, .LBB20_104 + ldrb w15, [x1, #4] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #30 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #35, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x1] + ldrb w1, [x16, x15] + cmp w2, #1 + b.ne .LBB20_102 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_93 + and x2, x2, #0xfffffff8ffffffff + str x2, [x27] +.LBB20_93: + add x15, x23, x20 + lsr x16, x2, #32 + mov w2, wzr + strb w16, [x15, #4] + b .LBB20_103 +.LBB20_94: + mov w2, #1 +.LBB20_95: + orr w30, w30, w1, lsl #16 + strb w2, [x17, #1] +.LBB20_96: + add x1, x24, x20 + tst x14, #0xff0000000000 + b.eq .LBB20_112 + ldrb w15, [x17, #2] + cbnz w15, .LBB20_112 + ldrb w15, [x1, #5] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #38 + cinc x2, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #43, #5 + ldr x16, [x16, #120] + ldrb w3, [x5, x2] + ldrb w2, [x16, x15] + cmp w3, #1 + b.ne .LBB20_110 + ldr x3, [x27] + cmp w4, #9 + b.hi .LBB20_101 + and x3, x3, #0xfffff8ffffffffff + str x3, [x27] +.LBB20_101: + add x15, x23, x20 + lsr x16, x3, #40 + mov w3, wzr + strb w16, [x15, #5] + b .LBB20_111 +.LBB20_102: + mov w2, #1 +.LBB20_103: + orr w30, w30, w1, lsl #18 + strb w2, [x17, #1] +.LBB20_104: + add x1, x24, x20 + tst x14, #0xff0000000000 + b.eq .LBB20_126 + ldrb w15, [x17, #2] + cbnz w15, .LBB20_126 + ldrb w15, [x1, #5] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #38 + cinc x2, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #43, #5 + ldr x16, [x16, #120] + ldrb w3, [x5, x2] + ldrb w2, [x16, x15] + cmp w3, #1 + b.ne .LBB20_124 + ldr x3, [x27] + cmp w4, #9 + b.hi .LBB20_109 + and x3, x3, #0xfffff8ffffffffff + str x3, [x27] +.LBB20_109: + add x15, x23, x20 + lsr x16, x3, #40 + mov w3, wzr + strb w16, [x15, #5] + b .LBB20_125 +.LBB20_110: + mov w3, #1 +.LBB20_111: + orr w30, w30, w2, lsl #20 + strb w3, [x17, #2] +.LBB20_112: + add x17, x25, x20 + tst x14, #0xff000000000000 + b.eq .LBB20_114 + ldrb w15, [x17, #3] + cbz w15, .LBB20_120 +.LBB20_114: + lsr x14, x14, #56 + cbz x14, .LBB20_10 +.LBB20_115: + ldrb w14, [x17, #4] + cbnz w14, .LBB20_10 + add x14, x24, x20 + ldrb w14, [x14, #7] + add x15, x5, x14, lsl #3 + cmp w14, #0 + lsr x14, x28, #54 + cinc x16, x19, ne + and x14, x14, #0x3e0 + bfxil x14, x29, #59, #5 + ldr x15, [x15, #120] + ldrb w16, [x5, x16] + ldrb w14, [x15, x14] + cmp w16, #1 + b.ne .LBB20_7 + ldr x1, [x27] + cmp w4, #9 + b.hi .LBB20_119 + and x1, x1, #0xf8ffffffffffffff + str x1, [x27] +.LBB20_119: + add x15, x23, x20 + lsr x16, x1, #56 + mov w1, wzr + strb w16, [x15, #7] b .LBB20_8 +.LBB20_120: + ldrb w15, [x1, #6] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #46 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #51, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x1] + ldrb w1, [x16, x15] + cmp w2, #1 + b.ne .LBB20_138 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_123 + and x2, x2, #0xfff8ffffffffffff + str x2, [x27] +.LBB20_123: + add x15, x23, x20 + lsr x16, x2, #48 + mov w2, wzr + strb w16, [x15, #6] + b .LBB20_139 +.LBB20_124: + mov w3, #1 +.LBB20_125: + orr w30, w30, w2, lsl #22 + strb w3, [x17, #2] +.LBB20_126: + add x17, x25, x20 + tst x14, #0xff000000000000 + b.eq .LBB20_128 + ldrb w15, [x17, #3] + cbz w15, .LBB20_134 +.LBB20_128: + lsr x14, x14, #56 + cbz x14, .LBB20_10 +.LBB20_129: + ldrb w14, [x17, #4] + cbnz w14, .LBB20_10 + add x14, x24, x20 + ldrb w14, [x14, #7] + add x15, x5, x14, lsl #3 + cmp w14, #0 + lsr x14, x28, #54 + cinc x16, x19, ne + and x14, x14, #0x3e0 + bfxil x14, x29, #59, #5 + ldr x15, [x15, #120] + ldrb w16, [x5, x16] + ldrb w14, [x15, x14] + cmp w16, #1 + b.ne .LBB20_142 + ldr x1, [x27] + cmp w4, #9 + b.hi .LBB20_133 + and x1, x1, #0xf8ffffffffffffff + str x1, [x27] +.LBB20_133: + add x15, x23, x20 + lsr x16, x1, #56 + mov w1, wzr + orr w30, w30, w14, lsl #30 + strb w16, [x15, #7] + b .LBB20_9 +.LBB20_134: + ldrb w15, [x1, #6] + add x16, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x28, #46 + cinc x1, x19, ne + and x15, x15, #0x3e0 + bfxil x15, x29, #51, #5 + ldr x16, [x16, #120] + ldrb w2, [x5, x1] + ldrb w1, [x16, x15] + cmp w2, #1 + b.ne .LBB20_140 + ldr x2, [x27] + cmp w4, #9 + b.hi .LBB20_137 + and x2, x2, #0xfff8ffffffffffff + str x2, [x27] +.LBB20_137: + add x15, x23, x20 + lsr x16, x2, #48 + mov w2, wzr + strb w16, [x15, #6] + b .LBB20_141 +.LBB20_138: + mov w2, #1 +.LBB20_139: + orr w30, w30, w1, lsl #24 + strb w2, [x17, #3] + lsr x14, x14, #56 + cbz x14, .LBB20_10 + b .LBB20_115 +.LBB20_140: + mov w2, #1 +.LBB20_141: + orr w30, w30, w1, lsl #26 + strb w2, [x17, #3] + lsr x14, x14, #56 + cbz x14, .LBB20_10 + b .LBB20_129 +.LBB20_142: + mov w1, #1 + orr w30, w30, w14, lsl #30 + b .LBB20_9 .Lfunc_end20: .size get_overlay_image_area2, .Lfunc_end20-get_overlay_image_area2 .p2align 2 .type get_overlay_image_area,@function get_overlay_image_area: - sub sp, sp, #144 + sub sp, sp, #112 str x30, [x18], #8 + adrp x8, global_ebc ldr x9, [x5, #232] - stp x29, x30, [sp, #48] - ldp w11, w10, [x5, #80] - stp x28, x27, [sp, #64] - ldp w12, w8, [x9, #48] - ldp w13, w14, [x9, #56] - add w15, w10, #7 - stp x26, x25, [sp, #80] - stp x24, x23, [sp, #96] - add w9, w12, #7 - cmp w12, #0 - csel w12, w9, w12, lt - add w9, w13, #7 - cmp w13, #0 - stp x22, x21, [sp, #112] - csel w9, w9, w13, lt + ldp w11, w7, [x5, #80] + stp x29, x30, [sp, #16] + ldr x12, [x8, :lo12:global_ebc] + stp x28, x27, [sp, #32] + ldp w10, w8, [x9, #48] + ldp w13, w15, [x9, #56] + add w9, w7, #7 + ldr w16, [x12, #116] + ldr w17, [x12, #196] + stp x26, x25, [sp, #48] + add w14, w10, #7 cmp w10, #0 - asr w13, w9, #3 - csel w9, w15, w10, lt - add w10, w13, #1 + csel w14, w14, w10, lt + add w10, w13, #7 + cmp w13, #0 + stp x24, x23, [sp, #64] + csel w10, w10, w13, lt + cmp w7, #0 + asr w10, w10, #3 + csel w9, w9, w7, lt + add w13, w10, #1 asr w9, w9, #3 - sub w15, w9, #1 - cmp w10, w9 - csinc w10, w15, w13, ge + cmp w13, w9 + sub w13, w9, #1 + csinc w10, w13, w10, ge sub w13, w11, #1 - cmp w14, w11 - stp x20, x19, [sp, #128] - csel w11, w14, w13, lt - stp x3, x4, [sp, #32] + cmp w15, w11 + stp x22, x21, [sp, #80] + csel w11, w15, w13, lt + lsr w13, w16, #2 + stp x20, x19, [sp, #96] + cbz w17, .LBB21_2 + ldr w12, [x12, #120] + mvn w15, w8 + add w12, w12, w15 + mul w15, w12, w13 + neg w13, w13 cmp w8, w11 - str x0, [sp, #24] - b.le .LBB21_2 -.LBB21_1: - ldp x20, x19, [sp, #128] - ldp x22, x21, [sp, #112] - ldp x24, x23, [sp, #96] - ldp x26, x25, [sp, #80] - ldp x28, x27, [sp, #64] - ldp x29, x30, [sp, #48] - ldr x30, [x18, #-8]! - add sp, sp, #144 - ret + b.le .LBB21_3 + b .LBB21_76 .LBB21_2: - adrp x13, global_ebc - ldr x14, [x5, #216] - asr w12, w12, #3 - add w15, w10, #1 - sbfiz x3, x12, #3, #32 - sxtw x0, w15 - ldr x13, [x13, :lo12:global_ebc] - lsl w15, w12, #3 - ldr w14, [x14, #40] - add x17, x1, x3 - sxtw x16, w12 - mul w6, w8, w9 - str w15, [sp, #20] - lsl w15, w12, #1 - str x17, [sp, #8] - ldr w17, [x13, #196] - sub w1, w14, #7 - add x14, x2, x3 - sub x7, x0, x16 - mov w19, #1 - str x14, [sp] - b .LBB21_4 -.LBB21_3: - add w8, w8, #1 - add w6, w6, w9 + mul w12, w13, w8 + sxtw x15, w12 cmp w8, w11 - b.gt .LBB21_1 + b.gt .LBB21_76 +.LBB21_3: + ldr x16, [x5, #216] + asr w12, w14, #3 + sxtw x6, w12 + add x14, x0, x15 + lsl w15, w12, #3 + add w17, w10, #1 + ldr w0, [x16, #40] + lsl x16, x6, #3 + sxtw x19, w15 + add x15, x2, x16 + add x16, x1, x16 + sxtw x1, w17 + sub x1, x1, x6 + add x6, x19, #3 + sxtw x13, w13 + sub w17, w0, #2 + lsl w0, w12, #1 + add x2, x4, x6 + add x3, x3, x6 + mov w4, #1 + mov w6, #56 + str x15, [sp, #8] + cmp w12, w10 + b.le .LBB21_5 + b .LBB21_75 .LBB21_4: - cbz w17, .LBB21_6 - ldp w16, w14, [x13, #116] - mvn w0, w8 - add w14, w14, w0 + ldr w7, [x5, #84] + add x14, x14, x13 cmp w12, w10 - b.gt .LBB21_3 - b .LBB21_7 -.LBB21_6: - ldr w14, [x13, #116] - mov w16, w8 - cmp w12, w10 - b.gt .LBB21_3 -.LBB21_7: - ldr w0, [x5, #84] - mul w14, w14, w16 - sbfiz x3, x6, #3, #32 - mov x20, x7 - mov w26, w15 - ldr w27, [sp, #20] - mul w16, w0, w8 - ldr x0, [sp, #8] - add x21, x0, x3 - ldr x0, [sp] - add x22, x0, x3 - ldr x0, [sp, #24] - add x23, x0, x14, lsr #2 - sxtw x14, w16 - ldr x16, [sp, #32] - add x24, x16, x14 - ldr x16, [sp, #40] - add x25, x16, x14 + b.gt .LBB21_75 +.LBB21_5: + mul w19, w8, w9 + ldr x15, [sp, #8] + mul w7, w7, w8 + mov x22, x1 + sxtw x19, w19 + mov w23, w0 + sxtw x20, w7 + lsl x21, x19, #3 + add x7, x2, x20 + add x19, x3, x20 + add x20, x15, x21 + add x21, x16, x21 b .LBB21_10 +.LBB21_6: + lsr x15, x25, #56 + mov w25, wzr + strb w15, [x20, #7] +.LBB21_7: + orr w28, w28, w24, lsl #6 + strb w25, [x19, #4] .LBB21_8: - strb w16, [x28, #1] + strb w28, [x27, #1] .LBB21_9: - add w27, w27, #8 - add w26, w26, #2 + add x20, x20, #8 add x21, x21, #8 - add x22, x22, #8 - subs x20, x20, #1 - b.eq .LBB21_3 + add w23, w23, #2 + subs x22, x22, #1 + add x7, x7, #8 + add x19, x19, #8 + b.eq .LBB21_75 .LBB21_10: - ldr x14, [x21] - cmp w1, #5 - ldr x16, [x22] - and x0, x14, #0xf8f8f8f8f8f8f8f8 - and x3, x16, #0xf8f8f8f8f8f8f8f8 - csel x29, x0, x14, lo - csel x30, x3, x16, lo - cmp x29, x30 - b.eq .LBB21_9 - add x28, x23, w26, sxtw - sxtw x16, w27 - add x14, x24, x16 - add x4, x25, x16 - eor x3, x30, x29 - ldrb w0, [x28] - tst x3, #0xff - str w19, [x5, #60] - b.eq .LBB21_14 - ldrb w16, [x14] - cbnz w16, .LBB21_14 - ldrb w16, [x4] - lsl w2, w30, #2 - and x2, x2, #0x3e0 - bfxil x2, x29, #3, #5 - add x16, x5, x16, lsl #3 - ldr x16, [x16, #120] - ldrb w16, [x16, x2] - strb w19, [x14] - orr w0, w16, w0 -.LBB21_14: - tst x3, #0xff00 - b.eq .LBB21_17 - ldrb w16, [x14, #1] - cbnz w16, .LBB21_17 - ldrb w16, [x4, #1] - lsr x2, x30, #6 - and x2, x2, #0x3e0 - bfxil x2, x29, #11, #5 - add x16, x5, x16, lsl #3 - ldr x16, [x16, #120] - ldrb w16, [x16, x2] - strb w19, [x14, #1] - orr w0, w0, w16, lsl #2 -.LBB21_17: - tst x3, #0xff0000 - b.eq .LBB21_20 - ldrb w16, [x14, #2] - cbnz w16, .LBB21_20 - ldrb w16, [x4, #2] - lsr x2, x30, #14 - and x2, x2, #0x3e0 - bfxil x2, x29, #19, #5 - add x16, x5, x16, lsl #3 - ldr x16, [x16, #120] - ldrb w16, [x16, x2] - strb w19, [x14, #2] - orr w0, w0, w16, lsl #4 + ldr x24, [x20] + cmp w17, #9 + b.hi .LBB21_12 + and x24, x24, #0xf8f8f8f8f8f8f8f8 + str x24, [x20] +.LBB21_12: + ldr x25, [x21] + eor x26, x25, x24 + cbz x26, .LBB21_9 + tst x26, #0xff + str w4, [x5, #60] + b.eq .LBB21_15 + ldurb w27, [x19, #-3] + cbz w27, .LBB21_16 +.LBB21_15: + mov w28, wzr + tst x26, #0xff00 + b.ne .LBB21_22 + b .LBB21_23 +.LBB21_16: + ldurb w27, [x7, #-3] + add x28, x5, x27, lsl #3 + cmp w27, #0 + lsl w27, w24, #2 + cinc x29, x6, ne + and x27, x27, #0x3e0 + bfxil x27, x25, #3, #5 + ldr x28, [x28, #120] + ldrb w29, [x5, x29] + ldrb w28, [x28, x27] + cmp w29, #1 + b.ne .LBB21_20 + ldr x27, [x21] + cmp w17, #9 + b.hi .LBB21_19 + and x27, x27, #0xfffffffffffffff8 + str x27, [x21] +.LBB21_19: + mov w29, wzr + strb w27, [x20] + b .LBB21_21 .LBB21_20: - tst x3, #0xff000000 + mov w29, #1 +.LBB21_21: + sturb w29, [x19, #-3] + tst x26, #0xff00 b.eq .LBB21_23 - ldrb w16, [x14, #3] - cbnz w16, .LBB21_23 - ldrb w16, [x4, #3] - lsr x2, x30, #22 - and x2, x2, #0x3e0 - bfxil x2, x29, #27, #5 - add x16, x5, x16, lsl #3 - ldr x16, [x16, #120] - ldrb w16, [x16, x2] - strb w19, [x14, #3] - orr w0, w0, w16, lsl #6 +.LBB21_22: + ldurb w27, [x19, #-2] + cbz w27, .LBB21_29 .LBB21_23: - ldrb w16, [x28, #1] - tst x3, #0xff00000000 - strb w0, [x28] - b.eq .LBB21_26 - ldrb w0, [x14, #4] - cbnz w0, .LBB21_26 - ldrb w0, [x4, #4] - lsr x2, x30, #30 - and x2, x2, #0x3e0 - bfxil x2, x29, #35, #5 - add x0, x5, x0, lsl #3 - ldr x0, [x0, #120] - ldrb w0, [x0, x2] - strb w19, [x14, #4] - orr w16, w0, w16 -.LBB21_26: - tst x3, #0xff0000000000 - b.eq .LBB21_29 - ldrb w0, [x14, #5] - cbnz w0, .LBB21_29 - ldrb w0, [x4, #5] - lsr x2, x30, #38 - and x2, x2, #0x3e0 - bfxil x2, x29, #43, #5 - add x0, x5, x0, lsl #3 - ldr x0, [x0, #120] - ldrb w0, [x0, x2] - strb w19, [x14, #5] - orr w16, w16, w0, lsl #2 + tst x26, #0xff0000 + b.eq .LBB21_37 +.LBB21_24: + ldurb w27, [x19, #-1] + cbnz w27, .LBB21_37 + ldurb w27, [x7, #-1] + add x29, x5, x27, lsl #3 + cmp w27, #0 + lsr x27, x24, #14 + cinc x30, x6, ne + and x27, x27, #0x3e0 + bfxil x27, x25, #19, #5 + ldr x29, [x29, #120] + ldrb w30, [x5, x30] + ldrb w27, [x29, x27] + cmp w30, #1 + b.ne .LBB21_33 + ldr x29, [x21] + cmp w17, #9 + b.hi .LBB21_28 + and x29, x29, #0xfffffffffff8ffff + str x29, [x21] +.LBB21_28: + lsr x30, x29, #16 + mov w29, wzr + strb w30, [x20, #2] + b .LBB21_34 .LBB21_29: - tst x3, #0xff000000000000 - b.eq .LBB21_32 - ldrb w0, [x14, #6] - cbnz w0, .LBB21_32 - ldrb w0, [x4, #6] - lsr x2, x30, #46 - and x2, x2, #0x3e0 - bfxil x2, x29, #51, #5 - add x0, x5, x0, lsl #3 - ldr x0, [x0, #120] - ldrb w0, [x0, x2] - strb w19, [x14, #6] - orr w16, w16, w0, lsl #4 + ldurb w27, [x7, #-2] + add x29, x5, x27, lsl #3 + cmp w27, #0 + lsr x27, x24, #6 + cinc x30, x6, ne + and x27, x27, #0x3e0 + bfxil x27, x25, #11, #5 + ldr x29, [x29, #120] + ldrb w30, [x5, x30] + ldrb w27, [x29, x27] + cmp w30, #1 + b.ne .LBB21_35 + ldr x29, [x21] + cmp w17, #9 + b.hi .LBB21_32 + and x29, x29, #0xfffffffffffff8ff + str x29, [x21] .LBB21_32: - lsr x0, x3, #56 - cbz x0, .LBB21_8 - ldrb w0, [x14, #7] - cbnz w0, .LBB21_8 - ldrb w0, [x4, #7] - lsr x2, x30, #54 - and x2, x2, #0x3e0 - bfxil x2, x29, #59, #5 - add x0, x5, x0, lsl #3 - ldr x0, [x0, #120] - ldrb w0, [x0, x2] - strb w19, [x14, #7] - orr w16, w16, w0, lsl #6 - b .LBB21_8 + lsr x30, x29, #8 + mov w29, wzr + strb w30, [x20, #1] + b .LBB21_36 +.LBB21_33: + mov w29, #1 +.LBB21_34: + orr w28, w28, w27, lsl #4 + sturb w29, [x19, #-1] + b .LBB21_37 +.LBB21_35: + mov w29, #1 +.LBB21_36: + orr w28, w28, w27, lsl #2 + sturb w29, [x19, #-2] + tst x26, #0xff0000 + b.ne .LBB21_24 +.LBB21_37: + tst x26, #0xff000000 + b.eq .LBB21_45 + ldrb w27, [x19] + cbnz w27, .LBB21_45 + ldrb w27, [x7] + add x29, x5, x27, lsl #3 + cmp w27, #0 + lsr x27, x24, #22 + cinc x30, x6, ne + and x27, x27, #0x3e0 + bfxil x27, x25, #27, #5 + ldr x29, [x29, #120] + ldrb w30, [x5, x30] + ldrb w27, [x29, x27] + cmp w30, #1 + b.ne .LBB21_43 + ldr x29, [x21] + cmp w17, #9 + b.hi .LBB21_42 + and x29, x29, #0xfffffffff8ffffff + str x29, [x21] +.LBB21_42: + lsr x30, x29, #24 + mov w29, wzr + strb w30, [x20, #3] + b .LBB21_44 +.LBB21_43: + mov w29, #1 +.LBB21_44: + orr w28, w28, w27, lsl #6 + strb w29, [x19] +.LBB21_45: + add x27, x14, w23, sxtw + tst x26, #0xff00000000 + strb w28, [x27] + b.eq .LBB21_47 + ldrb w28, [x19, #1] + cbz w28, .LBB21_48 +.LBB21_47: + mov w28, wzr + tst x26, #0xff0000000000 + b.ne .LBB21_54 + b .LBB21_55 +.LBB21_48: + ldrb w28, [x7, #1] + add x29, x5, x28, lsl #3 + cmp w28, #0 + lsr x28, x24, #30 + cinc x30, x6, ne + and x28, x28, #0x3e0 + bfxil x28, x25, #35, #5 + ldr x29, [x29, #120] + ldrb w30, [x5, x30] + ldrb w28, [x29, x28] + cmp w30, #1 + b.ne .LBB21_52 + ldr x29, [x21] + cmp w17, #9 + b.hi .LBB21_51 + and x29, x29, #0xfffffff8ffffffff + str x29, [x21] +.LBB21_51: + lsr x30, x29, #32 + mov w29, wzr + strb w30, [x20, #4] + b .LBB21_53 +.LBB21_52: + mov w29, #1 +.LBB21_53: + strb w29, [x19, #1] + tst x26, #0xff0000000000 + b.eq .LBB21_55 +.LBB21_54: + ldrb w29, [x19, #2] + cbz w29, .LBB21_61 +.LBB21_55: + tst x26, #0xff000000000000 + b.eq .LBB21_69 +.LBB21_56: + ldrb w15, [x19, #3] + cbnz w15, .LBB21_69 + ldrb w15, [x7, #3] + add x29, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x24, #46 + cinc x30, x6, ne + and x15, x15, #0x3e0 + bfxil x15, x25, #51, #5 + ldr x29, [x29, #120] + ldrb w30, [x5, x30] + ldrb w29, [x29, x15] + cmp w30, #1 + b.ne .LBB21_65 + ldr x30, [x21] + cmp w17, #9 + b.hi .LBB21_60 + and x30, x30, #0xfff8ffffffffffff + str x30, [x21] +.LBB21_60: + lsr x15, x30, #48 + mov w30, wzr + strb w15, [x20, #6] + b .LBB21_66 +.LBB21_61: + ldrb w29, [x7, #2] + add x30, x5, x29, lsl #3 + cmp w29, #0 + lsr x29, x24, #38 + cinc x15, x6, ne + and x29, x29, #0x3e0 + bfxil x29, x25, #43, #5 + ldr x30, [x30, #120] + ldrb w15, [x5, x15] + ldrb w29, [x30, x29] + cmp w15, #1 + b.ne .LBB21_67 + ldr x30, [x21] + cmp w17, #9 + b.hi .LBB21_64 + and x30, x30, #0xfffff8ffffffffff + str x30, [x21] +.LBB21_64: + lsr x15, x30, #40 + mov w30, wzr + strb w15, [x20, #5] + b .LBB21_68 +.LBB21_65: + mov w30, #1 +.LBB21_66: + orr w28, w28, w29, lsl #4 + strb w30, [x19, #3] + b .LBB21_69 +.LBB21_67: + mov w30, #1 +.LBB21_68: + orr w28, w28, w29, lsl #2 + strb w30, [x19, #2] + tst x26, #0xff000000000000 + b.ne .LBB21_56 +.LBB21_69: + lsr x15, x26, #56 + cbz x15, .LBB21_8 + ldrb w15, [x19, #4] + cbnz w15, .LBB21_8 + ldrb w15, [x7, #4] + add x26, x5, x15, lsl #3 + cmp w15, #0 + lsr x15, x24, #54 + cinc x24, x6, ne + and x15, x15, #0x3e0 + bfxil x15, x25, #59, #5 + ldr x26, [x26, #120] + ldrb w25, [x5, x24] + ldrb w24, [x26, x15] + cmp w25, #1 + b.ne .LBB21_74 + ldr x25, [x21] + cmp w17, #9 + b.hi .LBB21_6 + and x25, x25, #0xf8ffffffffffffff + str x25, [x21] + b .LBB21_6 +.LBB21_74: + mov w25, #1 + b .LBB21_7 +.LBB21_75: + add w8, w8, #1 + cmp w8, w11 + b.le .LBB21_4 +.LBB21_76: + ldp x20, x19, [sp, #96] + ldp x22, x21, [sp, #80] + ldp x24, x23, [sp, #64] + ldp x26, x25, [sp, #48] + ldp x28, x27, [sp, #32] + ldp x29, x30, [sp, #16] + ldr x30, [x18, #-8]! + add sp, sp, #112 + ret .Lfunc_end21: .size get_overlay_image_area, .Lfunc_end21-get_overlay_image_area @@ -7552,107 +8776,97 @@ get_auto_image2: str x30, [x18], #8 adrp x8, global_ebc stp x26, x25, [sp, #80] - stp x29, x30, [sp, #48] - add x29, sp, #48 stp x24, x23, [sp, #96] cmp w5, #3 - ldr x9, [x8, :lo12:global_ebc] + stp x29, x30, [sp, #48] + add x29, sp, #48 + ldr x8, [x8, :lo12:global_ebc] stp x22, x21, [sp, #112] stp x20, x19, [sp, #128] mov x19, x4 mov x20, x3 mov x21, x2 - ldp w25, w26, [x9, #116] + ldp w23, w25, [x8, #116] mov x22, x1 - ldr x8, [x4, #216] stp x28, x27, [sp, #64] - stp x9, x0, [x29, #-16] - lsr w24, w25, #3 + stur x0, [x29, #-8] + str x8, [sp, #24] + lsr w24, w23, #3 b.eq .LBB22_3 - add x9, x19, #60 + add x8, x19, #60 cmp w5, #2 - str x9, [sp, #8] + str x8, [sp, #8] b.ne .LBB22_4 - cmp w26, #0 + cmp w25, #0 mov w27, wzr - cinc w9, w26, lt - asr w26, w9, #1 + cinc w8, w25, lt + asr w25, w8, #1 b .LBB22_5 .LBB22_3: - cmp w26, #0 - cinc w9, w26, lt - asr w27, w9, #1 - mul w9, w27, w24 - mul w10, w27, w25 - sbfiz x9, x9, #3, #32 - add x22, x22, x9 - add x21, x21, x9 - add x20, x20, x10 - add x9, x19, #64 - str x9, [sp, #8] + cmp w25, #0 + cinc w8, w25, lt + asr w27, w8, #1 + mul w8, w27, w24 + mul w9, w27, w23 + sbfiz x8, x8, #3, #32 + add x22, x22, x8 + add x21, x21, x8 + add x20, x20, x9 + add x8, x19, #64 + str x8, [sp, #8] b .LBB22_5 .LBB22_4: mov w27, wzr .LBB22_5: - mul w10, w27, w25 - subs w9, w26, w27 - ldr w23, [x8, #40] - mov w1, wzr - lsr w8, w10, #2 + subs w8, w25, w27 + mul w9, w27, w23 ldur x10, [x29, #-8] - mul w9, w9, w25 - add x0, x10, x8 - lsr w2, w9, #2 + mov w1, wzr + mul w8, w8, w23 + lsr w9, w9, #2 + add x0, x10, x9 + lsr w2, w8, #2 bl memset mov w8, wzr - cmp w26, w27 - b.le .LBB22_20 + cmp w25, w27 + b.le .LBB22_19 cmp w24, #1 mov w8, wzr csinc w9, w24, wzr, hi - sub w24, w23, #7 - lsl x28, x9, #3 - stur w25, [x29, #-20] - str w26, [sp, #24] + stur w23, [x29, #-12] + lsl x24, x9, #3 str x9, [sp, #16] - b .LBB22_10 + b .LBB22_9 .LBB22_7: - add x22, x22, x26 - add x21, x21, x26 - add x20, x20, x26 + add x22, x22, x23 + add x21, x21, x23 + add x20, x20, x23 + ldur w23, [x29, #-12] .LBB22_8: - ldr w26, [sp, #24] -.LBB22_9: add w27, w27, #2 - cmp w27, w26 - b.ge .LBB22_20 -.LBB22_10: - cmp w25, #8 - b.lo .LBB22_9 - ldur x9, [x29, #-16] - ldr x25, [sp, #16] + cmp w27, w25 + b.ge .LBB22_19 +.LBB22_9: + cmp w23, #8 + b.lo .LBB22_8 + ldp x26, x9, [sp, #16] ldr w9, [x9, #116] - mul w23, w9, w27 + mul w28, w9, w27 ldur x9, [x29, #-8] - add x26, x9, x23, lsr #2 - b .LBB22_13 -.LBB22_12: + add x23, x9, x28, lsr #2 + b .LBB22_12 +.LBB22_11: add x21, x21, #8 add x22, x22, #8 add x20, x20, #8 - add x26, x26, #4 - subs x25, x25, #1 - b.eq .LBB22_15 -.LBB22_13: + add x23, x23, #4 + subs x26, x26, #1 + b.eq .LBB22_14 +.LBB22_12: ldr x9, [x22] - cmp w24, #5 ldr x10, [x21] - and x11, x9, #0xf8f8f8f8f8f8f8f8 - and x12, x10, #0xf8f8f8f8f8f8f8f8 - csel x9, x11, x9, lo - csel x10, x12, x10, lo cmp x9, x10 - b.eq .LBB22_12 + b.eq .LBB22_11 mov x0, x22 mov x1, x21 mov x2, x20 @@ -7660,43 +8874,38 @@ get_auto_image2: mov w4, wzr bl get_one_auto_image2 mov w8, #1 - str w0, [x26] - b .LBB22_12 -.LBB22_15: - ldur w25, [x29, #-20] - cmp w25, #8 + str w0, [x23] + b .LBB22_11 +.LBB22_14: + ldur w23, [x29, #-12] + cmp w23, #8 b.lo .LBB22_8 ldur x9, [x29, #-8] - mov x26, xzr - add x23, x9, x23, lsr #2 - b .LBB22_18 -.LBB22_17: - add x23, x23, #4 - add x26, x26, #8 - cmp x28, x26 + mov x23, xzr + add x26, x9, x28, lsr #2 + b .LBB22_17 +.LBB22_16: + add x26, x26, #4 + add x23, x23, #8 + cmp x24, x23 b.eq .LBB22_7 -.LBB22_18: - add x0, x22, x26 - add x1, x21, x26 - cmp w24, #5 +.LBB22_17: + add x0, x22, x23 + add x1, x21, x23 ldr x9, [x0] ldr x10, [x1] - and x11, x9, #0xf8f8f8f8f8f8f8f8 - and x12, x10, #0xf8f8f8f8f8f8f8f8 - csel x9, x11, x9, lo - csel x10, x12, x10, lo cmp x9, x10 - b.eq .LBB22_17 - add x2, x20, x26 + b.eq .LBB22_16 + add x2, x20, x23 mov x3, x19 mov w4, #2 bl get_one_auto_image2 - ldr w8, [x23] + ldr w8, [x26] orr w9, w8, w0 mov w8, #1 - str w9, [x23] - b .LBB22_17 -.LBB22_20: + str w9, [x26] + b .LBB22_16 +.LBB22_19: ldr x9, [sp, #8] ldp x20, x19, [sp, #128] ldp x22, x21, [sp, #112] @@ -7714,16 +8923,15 @@ get_auto_image2: .p2align 2 .type get_auto_image,@function get_auto_image: - str x27, [sp, #-80]! + stp x26, x25, [sp, #-64]! adrp x8, global_ebc cmp w5, #3 - stp x26, x25, [sp, #16] - stp x24, x23, [sp, #32] + stp x24, x23, [sp, #16] + stp x22, x21, [sp, #32] ldr x8, [x8, :lo12:global_ebc] - stp x22, x21, [sp, #48] - stp x20, x19, [sp, #64] + stp x20, x19, [sp, #48] ldp w9, w10, [x8, #116] - lsr w16, w9, #3 + lsr w15, w9, #3 b.eq .LBB23_3 add x11, x4, #60 cmp w5, #2 @@ -7739,7 +8947,7 @@ get_auto_image: cmp w10, #0 cinc w11, w10, lt asr w12, w11, #1 - mul w11, w12, w16 + mul w11, w12, w15 mul w13, w12, w9 sbfiz x11, x11, #3, #32 add x1, x1, x11 @@ -7749,237 +8957,228 @@ get_auto_image: cmp w12, w10 b.lt .LBB23_7 .LBB23_4: - mov w20, wzr + mov w19, wzr .LBB23_5: - str w20, [x11] - ldp x20, x19, [sp, #64] - ldp x22, x21, [sp, #48] - ldp x24, x23, [sp, #32] - ldp x26, x25, [sp, #16] - ldr x27, [sp], #80 + str w19, [x11] + ldp x20, x19, [sp, #48] + ldp x22, x21, [sp, #32] + ldp x24, x23, [sp, #16] + ldp x26, x25, [sp], #64 ret .LBB23_6: mov w12, wzr cmp w12, w10 b.ge .LBB23_4 .LBB23_7: - ldr x13, [x4, #216] - cmp w16, #1 - mov w20, wzr - ldr w14, [x8, #196] - csinc w16, w16, wzr, hi - add x17, x0, #1 - ldr w15, [x13, #40] + cmp w15, #1 + mov w19, wzr ldrb w13, [x4, #56] - sub w15, w15, #7 + csinc w15, w15, wzr, hi + ldr w14, [x8, #196] + add x16, x0, #1 b .LBB23_10 .LBB23_8: - add x3, x3, x0 - add x1, x1, x0 - add x2, x2, x0 + add x3, x3, x17 + add x1, x1, x17 + add x2, x2, x17 .LBB23_9: add w12, w12, #1 cmp w12, w10 b.eq .LBB23_5 .LBB23_10: cbz w14, .LBB23_12 - ldp w6, w0, [x8, #116] - mvn w5, w12 - add w5, w0, w5 + ldp w5, w17, [x8, #116] + mvn w0, w12 + add w0, w17, w0 cmp w9, #8 b.lo .LBB23_9 b .LBB23_13 .LBB23_12: - ldr w5, [x8, #116] - mov w6, w12 + ldr w0, [x8, #116] + mov w5, w12 cmp w9, #8 b.lo .LBB23_9 .LBB23_13: - mul w5, w5, w6 - mov x0, xzr - mov w6, w16 - lsr w5, w5, #2 - add x5, x17, x5 + mul w0, w0, w5 + mov x17, xzr + mov w5, w15 + lsr w0, w0, #2 + add x0, x16, x0 b .LBB23_16 .LBB23_14: - sturh wzr, [x5, #-1] + sturh wzr, [x0, #-1] .LBB23_15: - add x0, x0, #8 - add x5, x5, #2 - subs w6, w6, #1 + add x17, x17, #8 + add x0, x0, #2 + subs w5, w5, #1 b.eq .LBB23_8 .LBB23_16: - ldr x19, [x1, x0] - cmp w15, #5 - ldr x7, [x2, x0] - and x21, x19, #0xf8f8f8f8f8f8f8f8 - and x22, x7, #0xf8f8f8f8f8f8f8f8 - csel x19, x21, x19, lo - csel x7, x22, x7, lo - cmp x19, x7 + ldr x7, [x1, x17] + ldr x6, [x2, x17] + cmp x7, x6 b.eq .LBB23_14 - eor x20, x7, x19 - tst x20, #0xff + eor x19, x6, x7 + tst x19, #0xff b.eq .LBB23_19 - ldrb w22, [x3, x0] - lsl w23, w7, #2 - ldr x21, [x4, #120] - and x23, x23, #0x3e0 - bfxil x23, x19, #3, #5 - mov x24, x7 - bfxil x24, x19, #0, #8 - add x21, x21, x22, lsl #10 - add w25, w22, #1 - cmp w13, w25, uxtb - ldrb w21, [x21, x23] - csel x7, x24, x7, eq - csinc w22, wzr, w22, eq - strb w22, [x3, x0] + ldrb w21, [x3, x17] + lsl w22, w6, #2 + ldr x20, [x4, #120] + and x22, x22, #0x3e0 + bfxil x22, x7, #3, #5 + mov x23, x6 + bfxil x23, x7, #0, #8 + add x20, x20, x21, lsl #10 + add w24, w21, #1 + cmp w13, w24, uxtb + ldrb w20, [x20, x22] + csel x6, x23, x6, eq + csinc w21, wzr, w21, eq + strb w21, [x3, x17] b .LBB23_20 .LBB23_19: - mov w21, wzr + mov w20, wzr .LBB23_20: - add x22, x3, x0 - tst x20, #0xff00 + add x21, x3, x17 + tst x19, #0xff00 b.eq .LBB23_22 - ldrb w23, [x22, #1] - lsr x24, x7, #6 - ldr x25, [x4, #120] - and x24, x24, #0x3e0 - bfxil x24, x19, #11, #5 - add w26, w23, #1 - add x25, x25, x23, lsl #10 - cmp w13, w26, uxtb - mov x26, x7 - csinc w23, wzr, w23, eq - ldrb w24, [x25, x24] - lsr x25, x19, #8 - strb w23, [x22, #1] - bfi x26, x25, #8, #8 - orr w21, w21, w24, lsl #2 - csel x7, x26, x7, eq -.LBB23_22: - tst x20, #0xff0000 - b.eq .LBB23_24 - ldrb w23, [x22, #2] - lsr x24, x7, #14 - ldr x25, [x4, #120] - and x24, x24, #0x3e0 - bfxil x24, x19, #19, #5 - add w26, w23, #1 - add x25, x25, x23, lsl #10 - cmp w13, w26, uxtb - mov x26, x7 - csinc w23, wzr, w23, eq - ldrb w24, [x25, x24] - lsr x25, x19, #16 - strb w23, [x22, #2] - bfi x26, x25, #16, #8 - orr w21, w21, w24, lsl #4 - csel x7, x26, x7, eq -.LBB23_24: - add x22, x3, x0 - tst x20, #0xff000000 - b.eq .LBB23_26 - ldrb w23, [x22, #3] - lsr x24, x7, #22 - ldr x25, [x4, #120] - and x24, x24, #0x3e0 - bfxil x24, x19, #27, #5 - add w26, w23, #1 - add x25, x25, x23, lsl #10 - cmp w13, w26, uxtb - mov x26, x7 - csinc w23, wzr, w23, eq - ldrb w24, [x25, x24] - lsr x25, x19, #24 - strb w23, [x22, #3] - bfi x26, x25, #24, #8 - orr w21, w21, w24, lsl #6 - csel x7, x26, x7, eq -.LBB23_26: - tst x20, #0xff00000000 - sturb w21, [x5, #-1] - b.eq .LBB23_28 - ldrb w23, [x22, #4] - lsr x21, x7, #30 + ldrb w22, [x21, #1] + lsr x23, x6, #6 ldr x24, [x4, #120] - and x21, x21, #0x3e0 - bfxil x21, x19, #35, #5 - lsr x25, x19, #32 - mov x26, x7 - add w27, w23, #1 - add x24, x24, x23, lsl #10 - cmp w13, w27, uxtb - bfi x26, x25, #32, #8 - csinc w23, wzr, w23, eq - ldrb w21, [x24, x21] - csel x7, x26, x7, eq - strb w23, [x22, #4] + and x23, x23, #0x3e0 + bfxil x23, x7, #11, #5 + add w25, w22, #1 + add x24, x24, x22, lsl #10 + cmp w13, w25, uxtb + mov x25, x6 + csinc w22, wzr, w22, eq + ldrb w23, [x24, x23] + lsr x24, x7, #8 + strb w22, [x21, #1] + bfi x25, x24, #8, #8 + orr w20, w20, w23, lsl #2 + csel x6, x25, x6, eq +.LBB23_22: + tst x19, #0xff0000 + b.eq .LBB23_24 + ldrb w22, [x21, #2] + lsr x23, x6, #14 + ldr x24, [x4, #120] + and x23, x23, #0x3e0 + bfxil x23, x7, #19, #5 + add w25, w22, #1 + add x24, x24, x22, lsl #10 + cmp w13, w25, uxtb + mov x25, x6 + csinc w22, wzr, w22, eq + ldrb w23, [x24, x23] + lsr x24, x7, #16 + strb w22, [x21, #2] + bfi x25, x24, #16, #8 + orr w20, w20, w23, lsl #4 + csel x6, x25, x6, eq +.LBB23_24: + add x21, x3, x17 + tst x19, #0xff000000 + b.eq .LBB23_26 + ldrb w22, [x21, #3] + lsr x23, x6, #22 + ldr x24, [x4, #120] + and x23, x23, #0x3e0 + bfxil x23, x7, #27, #5 + add w25, w22, #1 + add x24, x24, x22, lsl #10 + cmp w13, w25, uxtb + mov x25, x6 + csinc w22, wzr, w22, eq + ldrb w23, [x24, x23] + lsr x24, x7, #24 + strb w22, [x21, #3] + bfi x25, x24, #24, #8 + orr w20, w20, w23, lsl #6 + csel x6, x25, x6, eq +.LBB23_26: + tst x19, #0xff00000000 + sturb w20, [x0, #-1] + b.eq .LBB23_28 + ldrb w22, [x21, #4] + lsr x20, x6, #30 + ldr x23, [x4, #120] + and x20, x20, #0x3e0 + bfxil x20, x7, #35, #5 + lsr x24, x7, #32 + mov x25, x6 + add w26, w22, #1 + add x23, x23, x22, lsl #10 + cmp w13, w26, uxtb + bfi x25, x24, #32, #8 + csinc w22, wzr, w22, eq + ldrb w20, [x23, x20] + csel x6, x25, x6, eq + strb w22, [x21, #4] b .LBB23_29 .LBB23_28: - mov w21, wzr + mov w20, wzr .LBB23_29: - add x22, x3, x0 - tst x20, #0xff0000000000 + add x21, x3, x17 + tst x19, #0xff0000000000 b.eq .LBB23_31 - ldrb w23, [x22, #5] - lsr x24, x7, #38 - ldr x25, [x4, #120] - and x24, x24, #0x3e0 - bfxil x24, x19, #43, #5 - add w26, w23, #1 - add x25, x25, x23, lsl #10 - cmp w13, w26, uxtb - mov x26, x7 - csinc w23, wzr, w23, eq - ldrb w24, [x25, x24] - lsr x25, x19, #40 - strb w23, [x22, #5] - bfi x26, x25, #40, #8 - orr w21, w21, w24, lsl #2 - csel x7, x26, x7, eq -.LBB23_31: - tst x20, #0xff000000000000 - b.eq .LBB23_33 - ldrb w23, [x22, #6] - lsr x24, x7, #46 - ldr x25, [x4, #120] - and x24, x24, #0x3e0 - bfxil x24, x19, #51, #5 - add w26, w23, #1 - add x25, x25, x23, lsl #10 - cmp w13, w26, uxtb - mov x26, x7 - csinc w23, wzr, w23, eq - ldrb w24, [x25, x24] - lsr x25, x19, #48 - strb w23, [x22, #6] - bfi x26, x25, #48, #8 - orr w21, w21, w24, lsl #4 - csel x7, x26, x7, eq -.LBB23_33: - lsr x20, x20, #56 - cbz x20, .LBB23_35 - add x20, x3, x0 - ldr x23, [x4, #120] - lsr x24, x7, #54 - and x24, x24, #0x3e0 - ldrb w22, [x20, #7] - bfxil x24, x19, #59, #5 - bfxil x19, x7, #0, #56 - add x23, x23, x22, lsl #10 - ldrb w23, [x23, x24] - add w24, w22, #1 - cmp w13, w24, uxtb + ldrb w22, [x21, #5] + lsr x23, x6, #38 + ldr x24, [x4, #120] + and x23, x23, #0x3e0 + bfxil x23, x7, #43, #5 + add w25, w22, #1 + add x24, x24, x22, lsl #10 + cmp w13, w25, uxtb + mov x25, x6 csinc w22, wzr, w22, eq - csel x7, x19, x7, eq - orr w21, w21, w23, lsl #6 - strb w22, [x20, #7] + ldrb w23, [x24, x23] + lsr x24, x7, #40 + strb w22, [x21, #5] + bfi x25, x24, #40, #8 + orr w20, w20, w23, lsl #2 + csel x6, x25, x6, eq +.LBB23_31: + tst x19, #0xff000000000000 + b.eq .LBB23_33 + ldrb w22, [x21, #6] + lsr x23, x6, #46 + ldr x24, [x4, #120] + and x23, x23, #0x3e0 + bfxil x23, x7, #51, #5 + add w25, w22, #1 + add x24, x24, x22, lsl #10 + cmp w13, w25, uxtb + mov x25, x6 + csinc w22, wzr, w22, eq + ldrb w23, [x24, x23] + lsr x24, x7, #48 + strb w22, [x21, #6] + bfi x25, x24, #48, #8 + orr w20, w20, w23, lsl #4 + csel x6, x25, x6, eq +.LBB23_33: + lsr x19, x19, #56 + cbz x19, .LBB23_35 + add x19, x3, x17 + ldr x22, [x4, #120] + lsr x23, x6, #54 + and x23, x23, #0x3e0 + ldrb w21, [x19, #7] + bfxil x23, x7, #59, #5 + bfxil x7, x6, #0, #56 + add x22, x22, x21, lsl #10 + ldrb w22, [x22, x23] + add w23, w21, #1 + cmp w13, w23, uxtb + csinc w21, wzr, w21, eq + csel x6, x7, x6, eq + orr w20, w20, w22, lsl #6 + strb w21, [x19, #7] .LBB23_35: - mov w20, #1 - str x7, [x2, x0] - strb w21, [x5] + mov w19, #1 + str x6, [x2, x17] + strb w20, [x0] b .LBB23_15 .Lfunc_end23: .size get_auto_image, .Lfunc_end23-get_auto_image @@ -9560,224 +10759,261 @@ ebc_get_8pix_wf_full: .p2align 2 .type ebc_lut_update,@function ebc_lut_update: - sub sp, sp, #64 + sub sp, sp, #80 str x30, [x18], #8 stp x29, x30, [sp, #16] mov w9, #25 - str x21, [sp, #32] + str x23, [sp, #32] + add x29, sp, #16 + stp x22, x21, [sp, #48] mov w21, w1 - stp x20, x19, [sp, #48] + stp x20, x19, [sp, #64] mrs x8, SP_EL0 ldr x8, [x8, #1584] mov w1, #1 - add x29, sp, #16 mov w20, w2 mov x19, x0 str x8, [sp, #8] str w9, [sp, #4] bl ebc_power_set - ldr w2, [x19, #892] - tbnz w2, #31, .LBB34_5 + ldr w22, [x19, #892] + tbnz w22, #31, .LBB34_6 ldr w8, [x19, #812] - str w2, [sp, #4] + str w22, [sp, #4] cmp w8, #1 - b.ge .LBB34_34 -.LBB34_2: + b.ge .LBB34_33 + mov w2, w22 +.LBB34_3: cmp w2, #51 - b.lo .LBB34_13 + b.lo .LBB34_16 ldr w8, [x19, #812] - tbz w8, #31, .LBB34_35 -.LBB34_4: + tbz w8, #31, .LBB34_41 +.LBB34_5: mov w8, #50 str w8, [sp, #4] - b .LBB34_13 -.LBB34_5: + b .LBB34_16 +.LBB34_6: ldr x0, [x19, #16] - cbz x0, .LBB34_9 + cbz x0, .LBB34_8 ldr x8, [x0, #56] add x1, sp, #4 blr x8 - mov w2, w0 - cbz w2, .LBB34_10 -.LBB34_7: - mov w8, #25 - ldr w9, [x19, #812] - str w8, [sp, #4] - tbnz w9, #31, .LBB34_13 - adrp x1, .L.str.106 - ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.106 - bl _dev_info - b .LBB34_13 -.LBB34_9: + mov w23, w0 + b .LBB34_9 +.LBB34_8: ldr x0, [x19, #32] add x1, sp, #4 bl thermal_zone_get_temp ldrsw x8, [sp, #4] mov w9, #19923 movk w9, #4194, lsl #16 - mov w2, w0 + mov w23, w0 mul x8, x8, x9 lsr x9, x8, #32 lsr x8, x8, #63 add w8, w8, w9, asr #6 str w8, [sp, #4] - cbnz w2, .LBB34_7 -.LBB34_10: - ldr w2, [sp, #4] - tbz w2, #31, .LBB34_2 +.LBB34_9: + ldr w0, [sp, #4] + cmp w21, #1 + b.ne .LBB34_14 + bl overlay_temp_fix + mov w22, w0 + cbnz w23, .LBB34_15 .LBB34_11: - ldr w8, [x19, #812] - tbz w8, #31, .LBB34_36 + ldr w2, [sp, #4] + tbz w2, #31, .LBB34_3 .LBB34_12: + ldr w8, [x19, #812] + tbz w8, #31, .LBB34_43 +.LBB34_13: mov w8, #25 str w8, [sp, #4] -.LBB34_13: - ldr w8, [x19, #812] - cmp w8, #1 - b.ge .LBB34_22 - cmp w21, #23 - b.hi .LBB34_23 + b .LBB34_16 +.LBB34_14: + bl normal_temp_fix + mov w22, w0 + cbz w23, .LBB34_11 .LBB34_15: + mov w8, #25 + ldr w9, [x19, #812] + str w8, [sp, #4] + tbz w9, #31, .LBB34_42 +.LBB34_16: + ldr w8, [x19, #812] + cmp w22, #50 + b.hi .LBB34_19 + cmp w8, #1 + b.ge .LBB34_34 +.LBB34_18: + str w22, [sp, #4] + cmp w21, #23 + b.ls .LBB34_21 + b .LBB34_36 +.LBB34_19: + cmp w8, #1 + b.ge .LBB34_35 + cmp w21, #23 + b.hi .LBB34_36 +.LBB34_21: adrp x9, .LJTI34_0 mov w8, w21 add x9, x9, :lo12:.LJTI34_0 mov w1, wzr - adr x10, .LBB34_16 + adr x10, .LBB34_22 ldrb w11, [x9, x8] add x10, x10, x11, lsl #2 br x10 -.LBB34_16: - mov w1, #1 - b .LBB34_30 -.LBB34_17: - mov w1, #5 - b .LBB34_30 -.LBB34_18: - mov w1, #6 - b .LBB34_30 -.LBB34_19: - mov w1, #8 - b .LBB34_30 -.LBB34_20: - mov w1, #7 - b .LBB34_30 -.LBB34_21: - mov w1, #2 - b .LBB34_30 .LBB34_22: - adrp x1, .L.str.107 - ldr x0, [x19, #328] - ldr w2, [sp, #4] - add x1, x1, :lo12:.L.str.107 - bl _dev_info - cmp w21, #23 - b.ls .LBB34_15 + mov w1, #1 + b .LBB34_37 .LBB34_23: - mov w1, #3 - b .LBB34_30 + mov w1, #5 + b .LBB34_37 .LBB34_24: - mov w1, #10 - b .LBB34_30 + mov w1, #6 + b .LBB34_37 .LBB34_25: - mov w1, #4 - b .LBB34_30 + mov w1, #8 + b .LBB34_37 .LBB34_26: + mov w1, #7 + b .LBB34_37 +.LBB34_27: + mov w1, #2 + b .LBB34_37 +.LBB34_28: + mov w1, #10 + b .LBB34_37 +.LBB34_29: + mov w1, #4 + b .LBB34_37 +.LBB34_30: ldr w8, [x19, #800] mov w9, #3 cmp w8, #0 mov w8, #14 csinc w20, w20, wzr, eq - b .LBB34_29 -.LBB34_27: + csel w1, w9, w8, eq + b .LBB34_37 +.LBB34_31: ldr w8, [x19, #800] mov w9, #4 cmp w8, #0 mov w8, #13 - b .LBB34_29 -.LBB34_28: + csel w1, w9, w8, eq + b .LBB34_37 +.LBB34_32: ldrb w8, [x19, #897] mov w9, #3 cmp w8, #0 mov w8, #15 -.LBB34_29: csel w1, w9, w8, eq -.LBB34_30: + b .LBB34_37 +.LBB34_33: + adrp x1, .L.str.106 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.106 + mov w2, w22 + bl _dev_info + ldr w2, [sp, #4] + tbz w2, #31, .LBB34_3 + b .LBB34_12 +.LBB34_34: + adrp x1, .L.str.110 + ldr x0, [x19, #328] + ldr w3, [sp, #4] + add x1, x1, :lo12:.L.str.110 + mov w2, w22 + bl _dev_info + b .LBB34_18 +.LBB34_35: + adrp x1, .L.str.111 + ldr x0, [x19, #328] + ldr w2, [sp, #4] + add x1, x1, :lo12:.L.str.111 + mov w3, w22 + bl _dev_info + cmp w21, #23 + b.ls .LBB34_21 +.LBB34_36: + mov w1, #3 +.LBB34_37: ldr w2, [sp, #4] add x0, x19, #336 ldrb w4, [x19, #896] mov w3, #32 mov w5, w20 bl epd_lut_get - cbnz w0, .LBB34_33 -.LBB34_31: + cbnz w0, .LBB34_40 +.LBB34_38: mrs x8, SP_EL0 ldr x8, [x8, #1584] ldr x9, [sp, #8] cmp x8, x9 - b.ne .LBB34_37 - ldp x20, x19, [sp, #48] + b.ne .LBB34_44 + ldp x20, x19, [sp, #64] + ldp x22, x21, [sp, #48] ldp x29, x30, [sp, #16] - ldr x21, [sp, #32] + ldr x23, [sp, #32] ldr x30, [x18, #-8]! - add sp, sp, #64 + add sp, sp, #80 ret -.LBB34_33: +.LBB34_40: + adrp x1, .L.str.112 + ldr x0, [x19, #328] + add x1, x1, :lo12:.L.str.112 + bl _dev_err + b .LBB34_38 +.LBB34_41: adrp x1, .L.str.108 ldr x0, [x19, #328] add x1, x1, :lo12:.L.str.108 - bl _dev_err - b .LBB34_31 -.LBB34_34: - adrp x1, .L.str.103 - ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.103 bl _dev_info - ldr w2, [sp, #4] - tbz w2, #31, .LBB34_2 - b .LBB34_11 -.LBB34_35: - adrp x1, .L.str.105 + b .LBB34_5 +.LBB34_42: + adrp x1, .L.str.109 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.105 + add x1, x1, :lo12:.L.str.109 + mov w2, w23 bl _dev_info - b .LBB34_4 -.LBB34_36: - adrp x1, .L.str.104 + b .LBB34_16 +.LBB34_43: + adrp x1, .L.str.107 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.104 + add x1, x1, :lo12:.L.str.107 bl _dev_info - b .LBB34_12 -.LBB34_37: + b .LBB34_13 +.LBB34_44: bl __stack_chk_fail .Lfunc_end34: .size ebc_lut_update, .Lfunc_end34-ebc_lut_update .section .rodata,"a",@progbits .LJTI34_0: - .byte (.LBB34_23-.LBB34_16)>>2 - .byte (.LBB34_24-.LBB34_16)>>2 - .byte (.LBB34_23-.LBB34_16)>>2 - .byte (.LBB34_25-.LBB34_16)>>2 - .byte (.LBB34_17-.LBB34_16)>>2 - .byte (.LBB34_18-.LBB34_16)>>2 - .byte (.LBB34_19-.LBB34_16)>>2 - .byte (.LBB34_26-.LBB34_16)>>2 - .byte (.LBB34_27-.LBB34_16)>>2 - .byte (.LBB34_17-.LBB34_16)>>2 - .byte (.LBB34_18-.LBB34_16)>>2 - .byte (.LBB34_19-.LBB34_16)>>2 - .byte (.LBB34_20-.LBB34_16)>>2 - .byte (.LBB34_20-.LBB34_16)>>2 - .byte (.LBB34_16-.LBB34_16)>>2 - .byte (.LBB34_21-.LBB34_16)>>2 - .byte (.LBB34_16-.LBB34_16)>>2 - .byte (.LBB34_30-.LBB34_16)>>2 - .byte (.LBB34_23-.LBB34_16)>>2 - .byte (.LBB34_23-.LBB34_16)>>2 - .byte (.LBB34_23-.LBB34_16)>>2 - .byte (.LBB34_28-.LBB34_16)>>2 - .byte (.LBB34_16-.LBB34_16)>>2 - .byte (.LBB34_21-.LBB34_16)>>2 + .byte (.LBB34_36-.LBB34_22)>>2 + .byte (.LBB34_28-.LBB34_22)>>2 + .byte (.LBB34_36-.LBB34_22)>>2 + .byte (.LBB34_29-.LBB34_22)>>2 + .byte (.LBB34_23-.LBB34_22)>>2 + .byte (.LBB34_24-.LBB34_22)>>2 + .byte (.LBB34_25-.LBB34_22)>>2 + .byte (.LBB34_30-.LBB34_22)>>2 + .byte (.LBB34_31-.LBB34_22)>>2 + .byte (.LBB34_23-.LBB34_22)>>2 + .byte (.LBB34_24-.LBB34_22)>>2 + .byte (.LBB34_25-.LBB34_22)>>2 + .byte (.LBB34_26-.LBB34_22)>>2 + .byte (.LBB34_26-.LBB34_22)>>2 + .byte (.LBB34_22-.LBB34_22)>>2 + .byte (.LBB34_27-.LBB34_22)>>2 + .byte (.LBB34_22-.LBB34_22)>>2 + .byte (.LBB34_37-.LBB34_22)>>2 + .byte (.LBB34_36-.LBB34_22)>>2 + .byte (.LBB34_36-.LBB34_22)>>2 + .byte (.LBB34_36-.LBB34_22)>>2 + .byte (.LBB34_32-.LBB34_22)>>2 + .byte (.LBB34_22-.LBB34_22)>>2 + .byte (.LBB34_27-.LBB34_22)>>2 .text .p2align 2 @@ -10000,10 +11236,10 @@ ebc_frame_start: ldr w8, [x19, #812] cmp w8, #1 b.lt .LBB35_41 - adrp x1, .L.str.110 + adrp x1, .L.str.114 adrp x2, .L__func__.ebc_frame_start ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.110 + add x1, x1, :lo12:.L.str.114 b .LBB35_73 .LBB35_39: bl get_overlay_image_area @@ -10209,18 +11445,18 @@ ebc_frame_start: ldr x9, [x9, #16] .LBB35_71: strb wzr, [x19, #916] - adrp x1, .L.str.111 + adrp x1, .L.str.115 ldrb w5, [x9, x8] - add x1, x1, :lo12:.L.str.111 + add x1, x1, :lo12:.L.str.115 ldrb w4, [x10, x8] ldr x0, [x19, #328] bl _dev_info b .LBB35_10 .LBB35_72: - adrp x1, .L.str.109 + adrp x1, .L.str.113 adrp x2, .L__func__.ebc_frame_start ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.109 + add x1, x1, :lo12:.L.str.113 .LBB35_73: add x2, x2, :lo12:.L__func__.ebc_frame_start bl _dev_info @@ -10229,11 +11465,11 @@ ebc_frame_start: madd w9, w9, w3, w2 ldr x10, [x19, #440] ldr x8, [x8, #16] - adrp x1, .L.str.111 + adrp x1, .L.str.115 sxtw x9, w9 ldr x0, [x19, #328] ldr x10, [x10, #16] - add x1, x1, :lo12:.L.str.111 + add x1, x1, :lo12:.L.str.115 ldrb w5, [x8, x9] ldrb w4, [x10, x9] bl _dev_info @@ -10301,8 +11537,8 @@ ebc_power_set: cmp w8, #1 b.lt .LBB36_19 ldr x0, [x19, #328] - adrp x1, .L.str.113 - add x1, x1, :lo12:.L.str.113 + adrp x1, .L.str.117 + add x1, x1, :lo12:.L.str.117 mov w2, w21 b .LBB36_23 .LBB36_11: @@ -10356,9 +11592,9 @@ ebc_power_set: cbnz w8, .LBB36_17 b .LBB36_18 .LBB36_22: - adrp x1, .L.str.114 + adrp x1, .L.str.118 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.114 + add x1, x1, :lo12:.L.str.118 mov w2, w20 .LBB36_23: bl _dev_info @@ -10384,9 +11620,9 @@ ebc_frame_control_timeout: ldr x30, [x18, #-8]! ret .LBB37_2: - adrp x1, .L.str.116 + adrp x1, .L.str.120 ldr x0, [x8, #328] - add x1, x1, :lo12:.L.str.116 + add x1, x1, :lo12:.L.str.120 bl _dev_info b .LBB37_1 .Lfunc_end37: @@ -10428,7 +11664,7 @@ ebc_io_ctl: stp xzr, xzr, [sp, #48] stp xzr, xzr, [sp, #32] stp xzr, xzr, [sp, #16] - b.hi .LBB39_85 + b.hi .LBB39_88 adrp x9, .LJTI39_0 mov x0, xzr add x9, x9, :lo12:.LJTI39_0 @@ -10440,7 +11676,7 @@ ebc_io_ctl: mov x19, x2 cbz x2, .LBB39_24 cmp w8, #33 - b.hi .LBB39_85 + b.hi .LBB39_88 adrp x9, .LJTI39_1 mov x0, xzr add x9, x9, :lo12:.LJTI39_1 @@ -10454,10 +11690,10 @@ ebc_io_ctl: mov w2, #68 add x20, sp, #16 bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 add x0, x20, #48 bl ebc_empty_buf_get - cbz x0, .LBB39_78 + cbz x0, .LBB39_81 ldr x23, [x0, #8] mov x20, x0 bl ebc_phy_buf_base_get @@ -10480,56 +11716,56 @@ ebc_io_ctl: ldr w8, [x22, w9, sxtw #2] str w8, [sp, #80] bl _copy_to_user - cbz w0, .LBB39_86 + cbz w0, .LBB39_89 mov x0, x20 bl ebc_buf_release mov x0, #-14 - b .LBB39_88 + b .LBB39_91 .LBB39_9: mov w8, #1 ldr w9, [x21, #812] str w8, [x21, #768] - tbnz w9, #31, .LBB39_86 - adrp x1, .L.str.132 + tbnz w9, #31, .LBB39_89 + adrp x1, .L.str.136 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.132 + add x1, x1, :lo12:.L.str.136 bl _dev_info - b .LBB39_86 + b .LBB39_89 .LBB39_11: ldr w8, [x21, #812] str wzr, [x21, #768] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.133 + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.137 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.133 + add x1, x1, :lo12:.L.str.137 bl _dev_info - b .LBB39_86 + b .LBB39_89 .LBB39_13: mov w8, #1 ldr w9, [x21, #812] str w8, [x21, #776] - tbnz w9, #31, .LBB39_86 - adrp x1, .L.str.130 + tbnz w9, #31, .LBB39_89 + adrp x1, .L.str.134 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.130 + add x1, x1, :lo12:.L.str.134 bl _dev_info - b .LBB39_86 + b .LBB39_89 .LBB39_15: ldr w8, [x21, #812] str wzr, [x21, #776] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.131 + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.135 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.131 + add x1, x1, :lo12:.L.str.135 bl _dev_info - b .LBB39_86 + b .LBB39_89 .LBB39_17: bl ebc_drop_one_dsp_buf - cbnz w0, .LBB39_77 - b .LBB39_86 + cbnz w0, .LBB39_80 + b .LBB39_89 .LBB39_18: ldr w8, [x21, #812] - tbz w8, #31, .LBB39_90 + tbz w8, #31, .LBB39_93 .LBB39_19: mov w0, #2 bl ebc_notify @@ -10537,10 +11773,10 @@ ebc_io_ctl: mov x0, xzr str w8, [x21, #760] str w8, [x21, #780] - b .LBB39_87 + b .LBB39_90 .LBB39_20: ldr w8, [x21, #812] - tbz w8, #31, .LBB39_91 + tbz w8, #31, .LBB39_94 ldr w8, [x21, #760] cbz w8, .LBB39_23 .LBB39_22: @@ -10550,27 +11786,27 @@ ebc_io_ctl: mov x0, xzr str wzr, [x21, #760] str wzr, [x21, #780] - b .LBB39_87 + b .LBB39_90 .LBB39_24: - adrp x1, .L.str.129 + adrp x1, .L.str.133 adrp x2, .L__func__.ebc_io_ctl ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.129 + add x1, x1, :lo12:.L.str.133 add x2, x2, :lo12:.L__func__.ebc_io_ctl bl _dev_err mov x0, #-14 - b .LBB39_88 + b .LBB39_91 .LBB39_25: add x0, sp, #16 mov x1, x19 mov w2, #68 bl _copy_from_user - cbnz x0, .LBB39_77 + cbnz x0, .LBB39_80 bl ebc_phy_buf_base_get ldrsw x8, [sp, #16] add x0, x0, x8 bl ebc_find_buf_by_phy_addr - cbz x0, .LBB39_87 + cbz x0, .LBB39_90 ldr w8, [sp, #20] ldr w9, [sp, #36] ldr x10, [sp, #40] @@ -10581,7 +11817,7 @@ ebc_io_ctl: stur x10, [x0, #52] stp w9, w8, [x0, #60] bl ebc_add_to_dsp_buf_list - b .LBB39_36 + b .LBB39_39 .LBB39_28: ldp w8, w9, [x21, #116] ldr w10, [x21, #192] @@ -10594,15 +11830,15 @@ ebc_io_ctl: str w10, [sp, #32] stp w11, w8, [sp, #52] bl _copy_to_user - cbz x0, .LBB39_87 - adrp x1, .L.str.134 + cbz x0, .LBB39_90 + adrp x1, .L.str.138 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.134 + add x1, x1, :lo12:.L.str.138 bl _dev_err - b .LBB39_77 + b .LBB39_80 .LBB39_30: bl ebc_empty_osd_buf_get - cbz x0, .LBB39_78 + cbz x0, .LBB39_81 ldr x20, [x0, #8] bl ebc_phy_buf_base_get mov w10, #26215 @@ -10624,16 +11860,17 @@ ebc_io_ctl: ldr w8, [x22, w9, sxtw #2] str w8, [sp, #80] bl _copy_to_user - b .LBB39_87 + b .LBB39_90 .LBB39_32: add x0, sp, #16 mov x1, x19 mov w2, #68 bl _copy_from_user - cbnz x0, .LBB39_77 + cbnz x0, .LBB39_80 bl ebc_osd_buf_clone - cbz x0, .LBB39_87 + cbz x0, .LBB39_90 ldr w8, [sp, #20] + mov x19, x0 ldr w9, [sp, #36] ldr x10, [sp, #40] ldr w11, [sp, #48] @@ -10642,179 +11879,191 @@ ebc_io_ctl: stur x10, [x0, #52] str w11, [x0, #60] bl ebc_add_to_osd_buf_list + ldp w8, w9, [x19, #48] + orr w8, w9, w8 + cbnz w8, .LBB39_37 + ldr w8, [x19, #56] + ldr w9, [x21, #316] + cmp w9, w8 + b.ne .LBB39_37 + ldr w8, [x19, #60] + ldr w9, [x21, #312] + cmp w9, w8 + b.eq .LBB39_39 +.LBB39_37: ldr w8, [x21, #324] - cbnz w8, .LBB39_36 + cbnz w8, .LBB39_39 mov w8, #1 str w8, [x21, #324] -.LBB39_36: +.LBB39_39: ldr w8, [x21, #320] - cbnz w8, .LBB39_86 + cbnz w8, .LBB39_89 adrp x0, ebc_thread_wq mov w8, #1 add x0, x0, :lo12:ebc_thread_wq mov w1, #1 str w8, [x21, #320] bl __wake_up_sync - b .LBB39_86 -.LBB39_38: + b .LBB39_89 +.LBB39_41: mov w8, #-1 add x0, sp, #12 mov x1, x19 mov w2, #4 str w8, [sp, #12] bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr w2, [sp, #12] ldr w8, [x21, #812] str w2, [x21, #904] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.135 + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.139 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.135 + add x1, x1, :lo12:.L.str.139 bl _dev_info - b .LBB39_86 -.LBB39_41: + b .LBB39_89 +.LBB39_44: add x1, x21, #768 - b .LBB39_82 -.LBB39_42: + b .LBB39_85 +.LBB39_45: add x1, x21, #672 - b .LBB39_82 -.LBB39_43: + b .LBB39_85 +.LBB39_46: ldr w8, [x21, #884] str wzr, [sp, #12] cmp w8, #3576 - b.eq .LBB39_45 + b.eq .LBB39_48 ldr w8, [x21, #888] cmp w8, #3576 - b.ne .LBB39_86 -.LBB39_45: + b.ne .LBB39_89 +.LBB39_48: add x0, sp, #12 mov x1, x19 mov w2, #4 bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr w8, [x21, #812] - tbz w8, #31, .LBB39_93 -.LBB39_47: + tbz w8, #31, .LBB39_96 +.LBB39_50: ldr w8, [sp, #12] str w8, [x21, #788] - b .LBB39_86 -.LBB39_48: + b .LBB39_89 +.LBB39_51: ldr w8, [x21, #884] cmp w8, #3576 - b.ne .LBB39_79 -.LBB39_49: + b.ne .LBB39_82 +.LBB39_52: mov w8, #1 - b .LBB39_81 -.LBB39_50: + b .LBB39_84 +.LBB39_53: add x0, x21, #864 mov x1, x19 mov w2, #4 bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr w8, [x21, #812] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.140 + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.144 ldr x0, [x21, #328] ldr w2, [x21, #864] - add x1, x1, :lo12:.L.str.140 + add x1, x1, :lo12:.L.str.144 bl _dev_info - b .LBB39_86 -.LBB39_53: + b .LBB39_89 +.LBB39_56: add x0, x21, #876 mov x1, x19 mov w2, #4 bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr w8, [x21, #812] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.141 + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.145 ldr x0, [x21, #328] ldr w2, [x21, #876] - add x1, x1, :lo12:.L.str.141 + add x1, x1, :lo12:.L.str.145 bl _dev_info - b .LBB39_86 -.LBB39_56: + b .LBB39_89 +.LBB39_59: mov w8, #-1 add x0, sp, #12 mov x1, x19 mov w2, #4 str w8, [sp, #12] bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr w2, [sp, #12] ldr w8, [x21, #812] str w2, [x21, #892] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.142 + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.146 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.142 + add x1, x1, :lo12:.L.str.146 bl _dev_info - b .LBB39_86 -.LBB39_59: - add x0, sp, #12 - mov x1, x19 - mov w2, #4 - str wzr, [sp, #12] - bl _copy_from_user - cbnz w0, .LBB39_77 - ldr w8, [sp, #12] - ldr w10, [x21, #812] - cmp w8, #0 - cset w9, ne - strb w9, [x21, #896] - tbnz w10, #31, .LBB39_86 - cmp w8, #0 - adrp x1, .L.str.143 - cset w2, ne - ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.143 - bl _dev_info - b .LBB39_86 + b .LBB39_89 .LBB39_62: add x0, sp, #12 mov x1, x19 mov w2, #4 str wzr, [sp, #12] bl _copy_from_user - cbnz w0, .LBB39_77 - ldr w2, [sp, #12] - ldr w8, [x21, #812] - str w2, [x21, #900] - tbnz w8, #31, .LBB39_86 - adrp x1, .L.str.144 + cbnz w0, .LBB39_80 + ldr w8, [sp, #12] + ldr w10, [x21, #812] + cmp w8, #0 + cset w9, ne + strb w9, [x21, #896] + tbnz w10, #31, .LBB39_89 + cmp w8, #0 + adrp x1, .L.str.147 + cset w2, ne ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.144 + add x1, x1, :lo12:.L.str.147 bl _dev_info - b .LBB39_86 + b .LBB39_89 .LBB39_65: add x0, sp, #12 mov x1, x19 mov w2, #4 str wzr, [sp, #12] bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 + ldr w2, [sp, #12] + ldr w8, [x21, #812] + str w2, [x21, #900] + tbnz w8, #31, .LBB39_89 + adrp x1, .L.str.148 + ldr x0, [x21, #328] + add x1, x1, :lo12:.L.str.148 + bl _dev_info + b .LBB39_89 +.LBB39_68: + add x0, sp, #12 + mov x1, x19 + mov w2, #4 + str wzr, [sp, #12] + bl _copy_from_user + cbnz w0, .LBB39_80 ldr w8, [sp, #12] ldr w10, [x21, #812] cmp w8, #0 cset w9, ne strb w9, [x21, #897] - tbnz w10, #31, .LBB39_86 + tbnz w10, #31, .LBB39_89 cmp w8, #0 - adrp x1, .L.str.145 + adrp x1, .L.str.149 cset w2, ne ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.145 + add x1, x1, :lo12:.L.str.149 bl _dev_info - b .LBB39_86 -.LBB39_68: + b .LBB39_89 +.LBB39_71: add x0, sp, #16 mov x1, x19 mov w2, #68 bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr x8, [x21, #448] - cbz x8, .LBB39_78 + cbz x8, .LBB39_81 ldr x20, [x8, #8] bl ebc_phy_buf_base_get mov w10, #26215 @@ -10836,81 +12085,81 @@ ebc_io_ctl: ldr w8, [x22, w9, sxtw #2] str w8, [sp, #80] bl _copy_to_user - cbnz w0, .LBB39_77 - b .LBB39_86 -.LBB39_71: + cbnz w0, .LBB39_80 + b .LBB39_89 +.LBB39_74: bl epd_lut_get_wf_bit cmp w0, #32 - b .LBB39_80 -.LBB39_72: + b .LBB39_83 +.LBB39_75: ldr w8, [x21, #884] mov w9, #1 cmp w8, #3576 str w9, [sp, #12] - b.eq .LBB39_74 + b.eq .LBB39_77 ldr w8, [x21, #888] cmp w8, #3576 - b.ne .LBB39_86 -.LBB39_74: + b.ne .LBB39_89 +.LBB39_77: add x0, sp, #12 mov x1, x19 mov w2, #4 bl _copy_from_user - cbnz w0, .LBB39_77 + cbnz w0, .LBB39_80 ldr w8, [sp, #12] str w8, [x21, #800] - b .LBB39_86 -.LBB39_76: + b .LBB39_89 +.LBB39_79: add x0, sp, #12 mov x1, x19 mov w2, #4 str wzr, [sp, #12] bl _copy_from_user - cbz w0, .LBB39_83 -.LBB39_77: + cbz w0, .LBB39_86 +.LBB39_80: mov x0, #-14 - b .LBB39_88 -.LBB39_78: + b .LBB39_91 +.LBB39_81: mov x0, #-1 - b .LBB39_88 -.LBB39_79: + b .LBB39_91 +.LBB39_82: ldr w8, [x21, #888] cmp w8, #3576 -.LBB39_80: +.LBB39_83: cset w8, eq -.LBB39_81: +.LBB39_84: str w8, [sp, #12] add x1, sp, #12 -.LBB39_82: +.LBB39_85: mov x0, x19 mov w2, #4 bl _copy_to_user - b .LBB39_87 -.LBB39_83: + b .LBB39_90 +.LBB39_86: ldr w8, [x21, #812] - tbz w8, #31, .LBB39_92 -.LBB39_84: + tbz w8, #31, .LBB39_95 +.LBB39_87: ldr w8, [sp, #12] mov x0, xzr str w8, [x21, #792] - b .LBB39_87 -.LBB39_85: - adrp x1, .L.str.146 + b .LBB39_90 +.LBB39_88: + adrp x1, .L.str.150 adrp x2, .L__func__.ebc_io_ctl ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.146 + add x1, x1, :lo12:.L.str.150 add x2, x2, :lo12:.L__func__.ebc_io_ctl bl _dev_err -.LBB39_86: +.LBB39_89: mov x0, xzr -.LBB39_87: +.LBB39_90: sxtw x0, w0 -.LBB39_88: +.LBB39_91: mrs x8, SP_EL0 ldr x8, [x8, #1584] ldur x9, [x29, #-8] cmp x8, x9 - b.ne .LBB39_94 + b.ne .LBB39_97 ldp x20, x19, [sp, #144] ldp x22, x21, [sp, #128] ldp x29, x30, [sp, #96] @@ -10918,35 +12167,35 @@ ebc_io_ctl: ldr x30, [x18, #-8]! add sp, sp, #160 ret -.LBB39_90: - adrp x1, .L.str.136 +.LBB39_93: + adrp x1, .L.str.140 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.136 + add x1, x1, :lo12:.L.str.140 bl _dev_info b .LBB39_19 -.LBB39_91: - adrp x1, .L.str.137 +.LBB39_94: + adrp x1, .L.str.141 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.137 + add x1, x1, :lo12:.L.str.141 bl _dev_info ldr w8, [x21, #760] cbnz w8, .LBB39_22 b .LBB39_23 -.LBB39_92: - adrp x1, .L.str.139 +.LBB39_95: + adrp x1, .L.str.143 ldr x0, [x21, #328] ldr w2, [sp, #12] - add x1, x1, :lo12:.L.str.139 + add x1, x1, :lo12:.L.str.143 bl _dev_info - b .LBB39_84 -.LBB39_93: - adrp x1, .L.str.138 + b .LBB39_87 +.LBB39_96: + adrp x1, .L.str.142 ldr x0, [x21, #328] ldr w2, [sp, #12] - add x1, x1, :lo12:.L.str.138 + add x1, x1, :lo12:.L.str.142 bl _dev_info - b .LBB39_47 -.LBB39_94: + b .LBB39_50 +.LBB39_97: bl __stack_chk_fail .Lfunc_end39: .size ebc_io_ctl, .Lfunc_end39-ebc_io_ctl @@ -10961,21 +12210,21 @@ ebc_io_ctl: .hword (.LBB39_11-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 - .hword (.LBB39_87-.LBB39_2)>>2 + .hword (.LBB39_90-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_13-.LBB39_2)>>2 .hword (.LBB39_15-.LBB39_2)>>2 - .hword (.LBB39_87-.LBB39_2)>>2 - .hword (.LBB39_87-.LBB39_2)>>2 + .hword (.LBB39_90-.LBB39_2)>>2 + .hword (.LBB39_90-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_17-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_18-.LBB39_2)>>2 .hword (.LBB39_20-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 - .hword (.LBB39_85-.LBB39_2)>>2 + .hword (.LBB39_88-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 .hword (.LBB39_2-.LBB39_2)>>2 @@ -10992,28 +12241,27 @@ ebc_io_ctl: .hword (.LBB39_5-.LBB39_5)>>2 .hword (.LBB39_25-.LBB39_5)>>2 .hword (.LBB39_28-.LBB39_5)>>2 - .hword (.LBB39_87-.LBB39_5)>>2 + .hword (.LBB39_90-.LBB39_5)>>2 .hword (.LBB39_9-.LBB39_5)>>2 .hword (.LBB39_11-.LBB39_5)>>2 .hword (.LBB39_30-.LBB39_5)>>2 .hword (.LBB39_32-.LBB39_5)>>2 - .hword (.LBB39_87-.LBB39_5)>>2 - .hword (.LBB39_38-.LBB39_5)>>2 - .hword (.LBB39_87-.LBB39_5)>>2 + .hword (.LBB39_90-.LBB39_5)>>2 .hword (.LBB39_41-.LBB39_5)>>2 + .hword (.LBB39_90-.LBB39_5)>>2 + .hword (.LBB39_44-.LBB39_5)>>2 .hword (.LBB39_13-.LBB39_5)>>2 .hword (.LBB39_15-.LBB39_5)>>2 - .hword (.LBB39_87-.LBB39_5)>>2 - .hword (.LBB39_87-.LBB39_5)>>2 - .hword (.LBB39_49-.LBB39_5)>>2 + .hword (.LBB39_90-.LBB39_5)>>2 + .hword (.LBB39_90-.LBB39_5)>>2 + .hword (.LBB39_52-.LBB39_5)>>2 .hword (.LBB39_17-.LBB39_5)>>2 - .hword (.LBB39_42-.LBB39_5)>>2 + .hword (.LBB39_45-.LBB39_5)>>2 .hword (.LBB39_18-.LBB39_5)>>2 .hword (.LBB39_20-.LBB39_5)>>2 - .hword (.LBB39_43-.LBB39_5)>>2 - .hword (.LBB39_85-.LBB39_5)>>2 - .hword (.LBB39_48-.LBB39_5)>>2 - .hword (.LBB39_50-.LBB39_5)>>2 + .hword (.LBB39_46-.LBB39_5)>>2 + .hword (.LBB39_88-.LBB39_5)>>2 + .hword (.LBB39_51-.LBB39_5)>>2 .hword (.LBB39_53-.LBB39_5)>>2 .hword (.LBB39_56-.LBB39_5)>>2 .hword (.LBB39_59-.LBB39_5)>>2 @@ -11021,8 +12269,9 @@ ebc_io_ctl: .hword (.LBB39_65-.LBB39_5)>>2 .hword (.LBB39_68-.LBB39_5)>>2 .hword (.LBB39_71-.LBB39_5)>>2 - .hword (.LBB39_72-.LBB39_5)>>2 - .hword (.LBB39_76-.LBB39_5)>>2 + .hword (.LBB39_74-.LBB39_5)>>2 + .hword (.LBB39_75-.LBB39_5)>>2 + .hword (.LBB39_79-.LBB39_5)>>2 .text .p2align 2 @@ -13009,9 +14258,9 @@ waveform_version_read: mov x29, sp mov x19, x2 bl epd_lut_get_wf_version - adrp x1, .L.str.150 + adrp x1, .L.str.154 mov x2, x0 - add x1, x1, :lo12:.L.str.150 + add x1, x1, :lo12:.L.str.154 mov x0, x19 bl sprintf ldr x19, [sp, #16] @@ -13028,9 +14277,9 @@ pmic_name_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! adrp x8, global_ebc - adrp x1, .L.str.150 + adrp x1, .L.str.154 mov x0, x2 - add x1, x1, :lo12:.L.str.150 + add x1, x1, :lo12:.L.str.154 mov x29, sp ldr x8, [x8, :lo12:global_ebc] ldr x8, [x8, #16] @@ -13069,9 +14318,9 @@ pmic_temp_read: add x1, sp, #4 bl thermal_zone_get_temp .LBB49_3: - adrp x1, .L.str.153 + adrp x1, .L.str.157 ldr w2, [sp, #4] - add x1, x1, :lo12:.L.str.153 + add x1, x1, :lo12:.L.str.157 mov x0, x19 bl sprintf mrs x8, SP_EL0 @@ -13116,9 +14365,9 @@ pmic_vcom_read: asr x8, x8, #38 add w2, w8, w9 .LBB50_3: - adrp x1, .L.str.153 + adrp x1, .L.str.157 mov x0, x19 - add x1, x1, :lo12:.L.str.153 + add x1, x1, :lo12:.L.str.157 bl sprintf ldr x19, [sp, #16] sxtw x0, w0 @@ -13162,15 +14411,15 @@ pmic_vcom_write: bl ebc_regulator_set_vcom cbz w0, .LBB51_7 .LBB51_4: - adrp x1, .L.str.156 + adrp x1, .L.str.160 ldr x0, [x21] - add x1, x1, :lo12:.L.str.156 + add x1, x1, :lo12:.L.str.160 bl _dev_err b .LBB51_6 .LBB51_5: - adrp x1, .L.str.155 + adrp x1, .L.str.159 ldr x0, [x21] - add x1, x1, :lo12:.L.str.155 + add x1, x1, :lo12:.L.str.159 mov x2, x20 bl _dev_err .LBB51_6: @@ -13199,9 +14448,9 @@ ebc_version_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! mov x0, x2 - adrp x1, .L.str.150 + adrp x1, .L.str.154 adrp x2, .L.str.2 - add x1, x1, :lo12:.L.str.150 + add x1, x1, :lo12:.L.str.154 add x2, x2, :lo12:.L.str.2 mov x29, sp bl sprintf @@ -13218,9 +14467,9 @@ ebc_state_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! adrp x8, global_ebc - adrp x1, .L.str.153 + adrp x1, .L.str.157 mov x0, x2 - add x1, x1, :lo12:.L.str.153 + add x1, x1, :lo12:.L.str.157 mov x29, sp ldr x8, [x8, :lo12:global_ebc] ldr w2, [x8, #672] @@ -13273,9 +14522,9 @@ auto_frame_state_read: strh w8, [x2] b .LBB55_6 .LBB55_5: - adrp x1, .L.str.153 + adrp x1, .L.str.157 mov x0, x2 - add x1, x1, :lo12:.L.str.153 + add x1, x1, :lo12:.L.str.157 mov w2, w8 bl sprintf sxtw x0, w0 @@ -13292,9 +14541,9 @@ ebc_debug_level_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! adrp x8, global_ebc - adrp x1, .L.str.153 + adrp x1, .L.str.157 mov x0, x2 - add x1, x1, :lo12:.L.str.153 + add x1, x1, :lo12:.L.str.157 mov x29, sp ldr x8, [x8, :lo12:global_ebc] ldr w2, [x8, #812] @@ -13344,9 +14593,9 @@ ebc_debug_level_write: add sp, sp, #64 ret .LBB57_4: - adrp x1, .L.str.155 + adrp x1, .L.str.159 ldr x0, [x21, #328] - add x1, x1, :lo12:.L.str.155 + add x1, x1, :lo12:.L.str.159 mov x2, x20 bl _dev_err mov x19, #-1 @@ -13362,9 +14611,9 @@ wf_data_write: str x30, [x18], #8 stp x29, x30, [sp, #-96]! adrp x8, global_ebc - adrp x1, .L.str.164 + adrp x1, .L.str.168 mov x0, x2 - add x1, x1, :lo12:.L.str.164 + add x1, x1, :lo12:.L.str.168 stp x26, x25, [sp, #32] mov x29, sp ldr x8, [x8, :lo12:global_ebc] @@ -13388,15 +14637,15 @@ wf_data_write: ldr x30, [x18, #-8]! ret .LBB58_2: - adrp x0, .L.str.165 + adrp x0, .L.str.169 mov w1, w20 - add x0, x0, :lo12:.L.str.165 + add x0, x0, :lo12:.L.str.169 bl _printk - adrp x22, .L.str.166 - adrp x23, .L.str.167 + adrp x22, .L.str.170 + adrp x23, .L.str.171 mov x21, xzr - add x22, x22, :lo12:.L.str.166 - add x23, x23, :lo12:.L.str.167 + add x22, x22, :lo12:.L.str.170 + add x23, x23, :lo12:.L.str.171 .LBB58_3: mov x24, xzr mov x26, x25 @@ -13434,9 +14683,9 @@ overlay_wf_data_write: str x30, [x18], #8 stp x29, x30, [sp, #-96]! adrp x8, global_ebc - adrp x1, .L.str.164 + adrp x1, .L.str.168 mov x0, x2 - add x1, x1, :lo12:.L.str.164 + add x1, x1, :lo12:.L.str.168 stp x26, x25, [sp, #32] mov x29, sp ldr x8, [x8, :lo12:global_ebc] @@ -13460,15 +14709,15 @@ overlay_wf_data_write: ldr x30, [x18, #-8]! ret .LBB59_2: - adrp x0, .L.str.165 + adrp x0, .L.str.169 mov w1, w20 - add x0, x0, :lo12:.L.str.165 + add x0, x0, :lo12:.L.str.169 bl _printk - adrp x22, .L.str.166 - adrp x23, .L.str.167 + adrp x22, .L.str.170 + adrp x23, .L.str.171 mov x21, xzr - add x22, x22, :lo12:.L.str.166 - add x23, x23, :lo12:.L.str.167 + add x22, x22, :lo12:.L.str.170 + add x23, x23, :lo12:.L.str.171 .LBB59_3: mov x24, xzr mov x26, x25 @@ -13525,32 +14774,32 @@ ori_wf_data_write: stp xzr, xzr, [sp, #24] bl kmalloc_large cbnz x0, .LBB60_2 - adrp x0, .L.str.170 - add x0, x0, :lo12:.L.str.170 + adrp x0, .L.str.174 + add x0, x0, :lo12:.L.str.174 bl _printk b .LBB60_17 .LBB60_2: - adrp x1, .L.str.164 + adrp x1, .L.str.168 mov x19, x0 str x0, [sp, #40] - add x1, x1, :lo12:.L.str.164 + add x1, x1, :lo12:.L.str.168 mov x0, x21 bl strstr cbnz x0, .LBB60_4 - adrp x0, .L.str.173 - add x0, x0, :lo12:.L.str.173 + adrp x0, .L.str.177 + add x0, x0, :lo12:.L.str.177 b .LBB60_16 .LBB60_4: - adrp x1, .L.str.171 + adrp x1, .L.str.175 add x2, sp, #20 - add x1, x1, :lo12:.L.str.171 + add x1, x1, :lo12:.L.str.175 add x3, sp, #16 mov x0, x21 bl sscanf ldp w3, w2, [sp, #16] - adrp x0, .L.str.172 + adrp x0, .L.str.176 adrp x1, .L__func__.ori_wf_data_write - add x0, x0, :lo12:.L.str.172 + add x0, x0, :lo12:.L.str.176 add x1, x1, :lo12:.L__func__.ori_wf_data_write bl _printk ldr w1, [sp, #20] @@ -13565,16 +14814,16 @@ ori_wf_data_write: str x20, [sp, #8] bl epd_lut_get_original ldrb w21, [sp, #24] - adrp x0, .L.str.165 - add x0, x0, :lo12:.L.str.165 + adrp x0, .L.str.169 + add x0, x0, :lo12:.L.str.169 mov w1, w21 bl _printk - adrp x23, .L.str.166 - adrp x24, .L.str.167 + adrp x23, .L.str.170 + adrp x24, .L.str.171 mov x22, xzr mov x20, x19 - add x23, x23, :lo12:.L.str.166 - add x24, x24, :lo12:.L.str.167 + add x23, x23, :lo12:.L.str.170 + add x24, x24, :lo12:.L.str.171 .LBB60_8: mov x25, xzr mov x26, x20 @@ -13607,8 +14856,8 @@ ori_wf_data_write: ldr x20, [sp, #8] b .LBB60_17 .LBB60_15: - adrp x0, .L.str.174 - add x0, x0, :lo12:.L.str.174 + adrp x0, .L.str.178 + add x0, x0, :lo12:.L.str.178 .LBB60_16: adrp x1, .L__func__.ori_wf_data_write add x1, x1, :lo12:.L__func__.ori_wf_data_write @@ -13645,10 +14894,10 @@ record_pix_wf_write: mrs x8, SP_EL0 ldr x8, [x8, #1584] adrp x9, global_ebc - adrp x1, .L.str.176 + adrp x1, .L.str.180 mov x19, x3 mov x0, x2 - add x1, x1, :lo12:.L.str.176 + add x1, x1, :lo12:.L.str.180 stur x8, [x29, #-8] sub x2, x29, #12 add x3, sp, #16 @@ -13701,9 +14950,9 @@ ebc_suspend: ldr x8, [x0, #40] blr x8 .LBB62_2: - adrp x1, .L.str.177 + adrp x1, .L.str.181 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.177 + add x1, x1, :lo12:.L.str.181 bl _dev_info ldr x19, [sp, #16] mov w0, wzr @@ -13726,9 +14975,9 @@ ebc_resume: ldr x8, [x0, #48] blr x8 .LBB63_2: - adrp x1, .L.str.178 + adrp x1, .L.str.182 ldr x0, [x19, #328] - add x1, x1, :lo12:.L.str.178 + add x1, x1, :lo12:.L.str.182 str wzr, [x19, #764] bl _dev_info ldr x19, [sp, #16] @@ -13775,12 +15024,12 @@ ebc_driver: .zero 6 .size ebc_driver, 208 - .type __UNIQUE_ID___addressable_ebc_init466,@object + .type __UNIQUE_ID___addressable_ebc_init467,@object .section .discard.addressable,"aw",@progbits .p2align 3 -__UNIQUE_ID___addressable_ebc_init466: +__UNIQUE_ID___addressable_ebc_init467: .xword ebc_init - .size __UNIQUE_ID___addressable_ebc_init466, 8 + .size __UNIQUE_ID___addressable_ebc_init467, 8 .type __exitcall_ebc_exit,@object .section .exitcall.exit,"aw",@progbits @@ -13789,26 +15038,26 @@ __exitcall_ebc_exit: .xword ebc_exit .size __exitcall_ebc_exit, 8 - .type __UNIQUE_ID_author467,@object + .type __UNIQUE_ID_author468,@object .section .modinfo,"a",@progbits -__UNIQUE_ID_author467: +__UNIQUE_ID_author468: .asciz "rkebc.author=Zorro Liu " - .size __UNIQUE_ID_author467, 50 + .size __UNIQUE_ID_author468, 50 - .type __UNIQUE_ID_description468,@object -__UNIQUE_ID_description468: + .type __UNIQUE_ID_description469,@object +__UNIQUE_ID_description469: .asciz "rkebc.description=ROCKCHIP EBC Driver" - .size __UNIQUE_ID_description468, 38 + .size __UNIQUE_ID_description469, 38 - .type __UNIQUE_ID_file469,@object -__UNIQUE_ID_file469: + .type __UNIQUE_ID_file470,@object +__UNIQUE_ID_file470: .asciz "rkebc.file=$EBC_DEV_PATH/rkebc" - .size __UNIQUE_ID_file469, 31 + .size __UNIQUE_ID_file470, 31 - .type __UNIQUE_ID_license470,@object -__UNIQUE_ID_license470: + .type __UNIQUE_ID_license471,@object +__UNIQUE_ID_license471: .asciz "rkebc.license=GPL v2" - .size __UNIQUE_ID_license470, 21 + .size __UNIQUE_ID_license471, 21 .type .L.str,@object .section .rodata.str1.1,"aMS",@progbits,1 @@ -13863,7 +15112,7 @@ ebc_pm: .type .L.str.2,@object .L.str.2: - .asciz "8.04_y8" + .asciz "8.05_y8" .size .L.str.2, 8 .type .L.str.3,@object @@ -13994,8 +15243,13 @@ ebc_pm: .comm ebc_auto_task,8,8 .type .L.str.27,@object .L.str.27: + .asciz "overlay frame done, do auto check\n" + .size .L.str.27, 35 + + .type .L.str.28,@object +.L.str.28: .asciz "overlay frame done\n" - .size .L.str.27, 20 + .size .L.str.28, 20 .type ebc_thread_wq,@object .data @@ -14007,257 +15261,262 @@ ebc_thread_wq: .xword ebc_thread_wq+8 .size ebc_thread_wq, 24 - .type .L.str.28,@object - .section .rodata.str1.1,"aMS",@progbits,1 -.L.str.28: - .asciz "auto task break\n" - .size .L.str.28, 17 - .type .L.str.29,@object + .section .rodata.str1.1,"aMS",@progbits,1 .L.str.29: - .asciz "auto frame done\n" + .asciz "auto task break\n" .size .L.str.29, 17 .type .L.str.30,@object .L.str.30: - .asciz "part task break\n" + .asciz "auto frame done\n" .size .L.str.30, 17 .type .L.str.31,@object .L.str.31: - .asciz "frame done\n" - .size .L.str.31, 12 + .asciz "part task break\n" + .size .L.str.31, 17 .type .L.str.32,@object .L.str.32: - .asciz "record pix pos wf: [%d, %d]: [%s]\n" - .size .L.str.32, 35 + .asciz "frame done\n" + .size .L.str.32, 12 .type .L.str.33,@object .L.str.33: - .asciz "panel,width" - .size .L.str.33, 12 + .asciz "fast task break\n" + .size .L.str.33, 17 .type .L.str.34,@object .L.str.34: - .asciz "panel,height" - .size .L.str.34, 13 + .asciz "record pix pos wf: [%d, %d]: [%s]\n" + .size .L.str.34, 35 .type .L.str.35,@object .L.str.35: - .asciz "panel,vir_width" - .size .L.str.35, 16 + .asciz "panel,width" + .size .L.str.35, 12 .type .L.str.36,@object .L.str.36: - .asciz "panel,vir_height" - .size .L.str.36, 17 + .asciz "panel,height" + .size .L.str.36, 13 .type .L.str.37,@object .L.str.37: - .asciz "panel,sdck" - .size .L.str.37, 11 + .asciz "panel,vir_width" + .size .L.str.37, 16 .type .L.str.38,@object .L.str.38: - .asciz "panel,lsl" - .size .L.str.38, 10 + .asciz "panel,vir_height" + .size .L.str.38, 17 .type .L.str.39,@object .L.str.39: - .asciz "panel,lbl" - .size .L.str.39, 10 + .asciz "panel,sdck" + .size .L.str.39, 11 .type .L.str.40,@object .L.str.40: - .asciz "panel,ldl" + .asciz "panel,lsl" .size .L.str.40, 10 .type .L.str.41,@object .L.str.41: - .asciz "panel,lel" + .asciz "panel,lbl" .size .L.str.41, 10 .type .L.str.42,@object .L.str.42: - .asciz "panel,gdck-sta" - .size .L.str.42, 15 + .asciz "panel,ldl" + .size .L.str.42, 10 .type .L.str.43,@object .L.str.43: - .asciz "panel,lgonl" - .size .L.str.43, 12 + .asciz "panel,lel" + .size .L.str.43, 10 .type .L.str.44,@object .L.str.44: - .asciz "panel,fsl" - .size .L.str.44, 10 + .asciz "panel,gdck-sta" + .size .L.str.44, 15 .type .L.str.45,@object .L.str.45: - .asciz "panel,fbl" - .size .L.str.45, 10 + .asciz "panel,lgonl" + .size .L.str.45, 12 .type .L.str.46,@object .L.str.46: - .asciz "panel,fdl" + .asciz "panel,fsl" .size .L.str.46, 10 .type .L.str.47,@object .L.str.47: - .asciz "panel,fel" + .asciz "panel,fbl" .size .L.str.47, 10 .type .L.str.48,@object .L.str.48: - .asciz "panel,panel_16bit" - .size .L.str.48, 18 + .asciz "panel,fdl" + .size .L.str.48, 10 .type .L.str.49,@object .L.str.49: - .asciz "panel,panel_color" - .size .L.str.49, 18 + .asciz "panel,fel" + .size .L.str.49, 10 .type .L.str.50,@object .L.str.50: - .asciz "panel,mirror" - .size .L.str.50, 13 + .asciz "panel,panel_16bit" + .size .L.str.50, 18 .type .L.str.51,@object .L.str.51: - .asciz "panel,width-mm" - .size .L.str.51, 15 + .asciz "panel,panel_color" + .size .L.str.51, 18 .type .L.str.52,@object .L.str.52: - .asciz "panel,height-mm" - .size .L.str.52, 16 + .asciz "panel,mirror" + .size .L.str.52, 13 .type .L.str.53,@object .L.str.53: - .asciz "panel,disable_logo" - .size .L.str.53, 19 + .asciz "panel,width-mm" + .size .L.str.53, 15 .type .L.str.54,@object .L.str.54: - .asciz "panel,rearrange" + .asciz "panel,height-mm" .size .L.str.54, 16 .type .L.str.55,@object .L.str.55: - .asciz "panel,sdoe_mode" - .size .L.str.55, 16 + .asciz "panel,disable_logo" + .size .L.str.55, 19 .type .L.str.56,@object .L.str.56: - .asciz "panel,sdce_width" - .size .L.str.56, 17 + .asciz "panel,rearrange" + .size .L.str.56, 16 .type .L.str.57,@object .L.str.57: - .asciz "panel,gds" - .size .L.str.57, 10 + .asciz "panel,sdoe_mode" + .size .L.str.57, 16 .type .L.str.58,@object .L.str.58: - .asciz "panel,gdl" - .size .L.str.58, 10 + .asciz "panel,sdce_width" + .size .L.str.58, 17 .type .L.str.59,@object .L.str.59: - .asciz "pmic-early-power-on" - .size .L.str.59, 20 + .asciz "panel,gds" + .size .L.str.59, 10 .type .L.str.60,@object .L.str.60: - .asciz "too large resolution, not support\n" - .size .L.str.60, 35 + .asciz "panel,gdl" + .size .L.str.60, 10 .type .L.str.61,@object .L.str.61: - .asciz "memory-region" - .size .L.str.61, 14 + .asciz "pmic-early-power-on" + .size .L.str.61, 20 .type .L.str.62,@object .L.str.62: - .asciz "Couldn't address to resource for reserved memory\n" - .size .L.str.62, 50 + .asciz "too large resolution, not support\n" + .size .L.str.62, 35 .type .L.str.63,@object .L.str.63: - .asciz "reserved memory not enough, need 0x%x\n" - .size .L.str.63, 39 + .asciz "memory-region" + .size .L.str.63, 14 .type .L.str.64,@object .L.str.64: - .asciz "Couldn't remap for reserved memory\n" - .size .L.str.64, 36 + .asciz "Couldn't address to resource for reserved memory\n" + .size .L.str.64, 50 .type .L.str.65,@object .L.str.65: - .asciz "waveform-region" - .size .L.str.65, 16 + .asciz "reserved memory not enough, need 0x%x\n" + .size .L.str.65, 39 .type .L.str.66,@object .L.str.66: - .asciz "wf,mode_table" - .size .L.str.66, 14 + .asciz "Couldn't remap for reserved memory\n" + .size .L.str.66, 36 .type .L.str.67,@object .L.str.67: + .asciz "waveform-region" + .size .L.str.67, 16 + + .type .L.str.68,@object +.L.str.68: + .asciz "wf,mode_table" + .size .L.str.68, 14 + + .type .L.str.69,@object +.L.str.69: .asciz "%s:%d: failed to get mem from reserved\n" - .size .L.str.67, 40 + .size .L.str.69, 40 .type .L__func__.ebc_lut_table_init,@object .L__func__.ebc_lut_table_init: .asciz "ebc_lut_table_init" .size .L__func__.ebc_lut_table_init, 19 - .type .L.str.68,@object -.L.str.68: - .asciz "Failed to read waveform from mem, we use waveform file from kernel file instead\n" - .size .L.str.68, 81 - - .type .L.str.69,@object -.L.str.69: - .asciz "Failed to read waveform file from kernel, no waveform!!!\n" - .size .L.str.69, 58 - .type .L.str.70,@object .L.str.70: - .asciz "ebc_task" - .size .L.str.70, 9 + .asciz "Failed to read waveform from mem, we use waveform file from kernel file instead\n" + .size .L.str.70, 81 .type .L.str.71,@object .L.str.71: - .asciz "failed to create ebc_task thread\n" - .size .L.str.71, 34 + .asciz "Failed to read waveform file from kernel, no waveform!!!\n" + .size .L.str.71, 58 .type .L.str.72,@object .L.str.72: + .asciz "ebc_task" + .size .L.str.72, 9 + + .type .L.str.73,@object +.L.str.73: + .asciz "failed to create ebc_task thread\n" + .size .L.str.73, 34 + + .type .L.str.74,@object +.L.str.74: .asciz "ebc_taskup" - .size .L.str.72, 11 + .size .L.str.74, 11 .type ebc_auto_assist_task,@object .local ebc_auto_assist_task .comm ebc_auto_assist_task,8,8 - .type .L.str.73,@object -.L.str.73: + .type .L.str.75,@object +.L.str.75: .asciz "failed to create ebc_taskup thread\n" - .size .L.str.73, 36 + .size .L.str.75, 36 - .type .L.str.74,@object -.L.str.74: + .type .L.str.76,@object +.L.str.76: .asciz "ebc_thread" - .size .L.str.74, 11 + .size .L.str.76, 11 .type ebc_task,@object .local ebc_task .comm ebc_task,8,8 - .type .L.str.75,@object -.L.str.75: + .type .L.str.77,@object +.L.str.77: .asciz "failed to run ebc thread\n" - .size .L.str.75, 26 + .size .L.str.77, 26 .type ebc_auto_thread_sem,@object .data @@ -14287,276 +15546,286 @@ ebc_auto_assist_thread_sem: .xword ebc_auto_assist_thread_sem+8 .size ebc_auto_assist_thread_sem, 24 - .type .L.str.76,@object - .section .rodata.str1.1,"aMS",@progbits,1 -.L.str.76: - .asciz "ebc suspend, drop osd buf\n" - .size .L.str.76, 27 - - .type .L.str.77,@object -.L.str.77: - .asciz "break from part work, frame left = %d\n" - .size .L.str.77, 39 - .type .L.str.78,@object + .section .rodata.str1.1,"aMS",@progbits,1 .L.str.78: - .asciz "control bg update under overlay mode, overlay_bg_update=0\n" - .size .L.str.78, 59 + .asciz "ebc suspend, drop osd buf\n" + .size .L.str.78, 27 .type .L.str.79,@object .L.str.79: - .asciz "break from fast mode, process it\n" - .size .L.str.79, 34 + .asciz "break from part work, frame left = %d\n" + .size .L.str.79, 39 .type .L.str.80,@object .L.str.80: - .asciz "overlay mode start, frame_total=%d, bw_frame = %d\n" - .size .L.str.80, 51 + .asciz "control bg update under overlay mode, overlay_bg_update=0\n" + .size .L.str.80, 59 .type .L.str.81,@object .L.str.81: - .asciz "frame start under overlay, mode = %d, framecount = %d\n" - .size .L.str.81, 55 + .asciz "break from fast mode, process it\n" + .size .L.str.81, 34 .type .L.str.82,@object .L.str.82: - .asciz "mode change, force update lut, mode = %d, framecount = %d\n" - .size .L.str.82, 59 + .asciz "process osd\n" + .size .L.str.82, 13 .type .L.str.83,@object .L.str.83: - .asciz "update frame under overlay, mode = %d, framecount = %d\n" - .size .L.str.83, 56 + .asciz "overlay mode start, frame_total=%d, bw_frame = %d\n" + .size .L.str.83, 51 .type .L.str.84,@object .L.str.84: - .asciz "ebc is busy now, waiting prev mode end...\n" - .size .L.str.84, 43 + .asciz "frame start under overlay, mode = %d, framecount = %d\n" + .size .L.str.84, 55 .type .L.str.85,@object .L.str.85: - .asciz "prev refresh mode end\n" - .size .L.str.85, 23 + .asciz "mode change, force update lut, mode = %d, framecount = %d\n" + .size .L.str.85, 59 .type .L.str.86,@object .L.str.86: - .asciz "auto mode start, frame_total=%d\n" - .size .L.str.86, 33 + .asciz "update frame under overlay, mode = %d, framecount = %d\n" + .size .L.str.86, 56 .type .L.str.87,@object .L.str.87: - .asciz "last frame not complete, left = %d, change to force full\n" - .size .L.str.87, 58 + .asciz "ebc is busy now, waiting prev mode end...\n" + .size .L.str.87, 43 .type .L.str.88,@object .L.str.88: - .asciz "check_part_mode==0, no need refresh\n" - .size .L.str.88, 37 + .asciz "prev refresh mode end\n" + .size .L.str.88, 23 .type .L.str.89,@object .L.str.89: - .asciz "check difference is 0, no need refresh\n" - .size .L.str.89, 40 + .asciz "auto mode start, frame_total=%d\n" + .size .L.str.89, 33 .type .L.str.90,@object .L.str.90: - .asciz "change from fast mode\n" - .size .L.str.90, 23 + .asciz "last frame not complete, left = %d, change to force full\n" + .size .L.str.90, 58 .type .L.str.91,@object .L.str.91: - .asciz "enter fast mode, init framecount\n" - .size .L.str.91, 34 + .asciz "check_part_mode==0, no need refresh\n" + .size .L.str.91, 37 .type .L.str.92,@object .L.str.92: - .asciz "frame start, mode = %d, framecount = %d vs %d\n" - .size .L.str.92, 47 + .asciz "check difference is 0, no need refresh\n" + .size .L.str.92, 40 .type .L.str.93,@object .L.str.93: - .asciz "update repair buf\n" - .size .L.str.93, 19 + .asciz "change from fast mode\n" + .size .L.str.93, 23 .type .L.str.94,@object .L.str.94: - .asciz "waiting frame done\n" - .size .L.str.94, 20 + .asciz "enter fast mode, init framecount\n" + .size .L.str.94, 34 .type .L.str.95,@object .L.str.95: - .asciz "----update repair buf timeout----\n" - .size .L.str.95, 35 + .asciz "frame start, mode = %d, framecount = %d vs %d\n" + .size .L.str.95, 47 .type .L.str.96,@object .L.str.96: - .asciz "break from part work, do something before turn to overlay work\n" - .size .L.str.96, 64 + .asciz "update repair buf\n" + .size .L.str.96, 19 .type .L.str.97,@object .L.str.97: - .asciz "no buffer or next not fast mode, do repair..........\n" - .size .L.str.97, 54 + .asciz "waiting frame done\n" + .size .L.str.97, 20 .type .L.str.98,@object .L.str.98: - .asciz "next not fast mode, do repair..........\n" - .size .L.str.98, 41 + .asciz "----update repair buf timeout----\n" + .size .L.str.98, 35 .type .L.str.99,@object .L.str.99: - .asciz "no buffer, do last ghost remove..........\n" - .size .L.str.99, 43 + .asciz "break from part work, do something before turn to overlay work\n" + .size .L.str.99, 64 .type .L.str.100,@object .L.str.100: - .asciz "frame start, mode = %d, framecount = %d\n" - .size .L.str.100, 41 + .asciz "no buffer or next not fast mode, do repair..........\n" + .size .L.str.100, 54 .type .L.str.101,@object .L.str.101: - .asciz "ghost remove break, frame_left %d\n" - .size .L.str.101, 35 + .asciz "next not fast mode, do repair..........\n" + .size .L.str.101, 41 .type .L.str.102,@object .L.str.102: - .asciz "ebc buffer mode %d error!!!\n" - .size .L.str.102, 29 + .asciz "no buffer, do last ghost remove..........\n" + .size .L.str.102, 43 .type .L.str.103,@object .L.str.103: - .asciz "force temperature = %d\n" - .size .L.str.103, 24 + .asciz "frame start, mode = %d, framecount = %d\n" + .size .L.str.103, 41 .type .L.str.104,@object .L.str.104: - .asciz "temperature = %d, out of range0~50 ,use 25 \n" - .size .L.str.104, 45 + .asciz "ghost remove break, frame_left %d\n" + .size .L.str.104, 35 .type .L.str.105,@object .L.str.105: - .asciz "temperature = %d, out of range0~50 ,use 50 \n" - .size .L.str.105, 45 + .asciz "ebc buffer mode %d error!!!\n" + .size .L.str.105, 29 .type .L.str.106,@object .L.str.106: - .asciz "ebc_pmic_read_temp failed, ret = %d, use 25 \n" - .size .L.str.106, 46 + .asciz "force temperature = %d\n" + .size .L.str.106, 24 .type .L.str.107,@object .L.str.107: - .asciz "lut update use temperature = %d\n" - .size .L.str.107, 33 + .asciz "temperature = %d, out of range0~50 ,use 25 \n" + .size .L.str.107, 45 .type .L.str.108,@object .L.str.108: - .asciz "get lut data failed\n" - .size .L.str.108, 21 + .asciz "temperature = %d, out of range0~50 ,use 50 \n" + .size .L.str.108, 45 .type .L.str.109,@object .L.str.109: + .asciz "ebc_pmic_read_temp failed, ret = %d, use 25 \n" + .size .L.str.109, 46 + + .type .L.str.110,@object +.L.str.110: + .asciz "lut update use temperature_fix = %d, temperature = %d\n" + .size .L.str.110, 55 + + .type .L.str.111,@object +.L.str.111: + .asciz "lut update use temperature = %d, temperature_fix = %d\n" + .size .L.str.111, 55 + + .type .L.str.112,@object +.L.str.112: + .asciz "get lut data failed\n" + .size .L.str.112, 21 + + .type .L.str.113,@object +.L.str.113: .asciz "%s: overlay no need to update\n" - .size .L.str.109, 31 + .size .L.str.113, 31 .type .L__func__.ebc_frame_start,@object .L__func__.ebc_frame_start: .asciz "ebc_frame_start" .size .L__func__.ebc_frame_start, 16 - .type .L.str.110,@object -.L.str.110: + .type .L.str.114,@object +.L.str.114: .asciz "%s: auto no need to update\n" - .size .L.str.110, 28 + .size .L.str.114, 28 - .type .L.str.111,@object -.L.str.111: + .type .L.str.115,@object +.L.str.115: .asciz "record pix pos wf: [%d, %d]: [%02x --> %02x]\n" - .size .L.str.111, 46 + .size .L.str.115, 46 - .type .L.str.112,@object -.L.str.112: + .type .L.str.116,@object +.L.str.116: .asciz "%s: overlay bg no need to update, overlay_bg_update=1\n" - .size .L.str.112, 55 + .size .L.str.116, 55 .type .L__func__.ebc_overlay_bg_frame_start,@object .L__func__.ebc_overlay_bg_frame_start: .asciz "ebc_overlay_bg_frame_start" .size .L__func__.ebc_overlay_bg_frame_start, 27 - .type .L.str.113,@object -.L.str.113: - .asciz "ebc hw power on res:%d\n" - .size .L.str.113, 24 - - .type .L.str.114,@object -.L.str.114: - .asciz "ebc hw power off res:%d\n" - .size .L.str.114, 25 - - .type .L.str.115,@object -.L.str.115: - .asciz "ebc" - .size .L.str.115, 4 - - .type .L.str.116,@object -.L.str.116: - .asciz "ebc_frame_control_timeout, overlay_bg_update=1\n" - .size .L.str.116, 48 - .type .L.str.117,@object .L.str.117: - .asciz "ulogo_addr=" - .size .L.str.117, 12 + .asciz "ebc hw power on res:%d\n" + .size .L.str.117, 24 .type .L.str.118,@object .L.str.118: - .asciz "klogo_addr=" - .size .L.str.118, 12 + .asciz "ebc hw power off res:%d\n" + .size .L.str.118, 25 .type .L.str.119,@object .L.str.119: - .asciz "ulogo_addr=0x%x" - .size .L.str.119, 16 + .asciz "ebc" + .size .L.str.119, 4 .type .L.str.120,@object .L.str.120: - .asciz "have ulogo display, ulogo addr = 0x%x\n" - .size .L.str.120, 39 + .asciz "ebc_frame_control_timeout, overlay_bg_update=1\n" + .size .L.str.120, 48 .type .L.str.121,@object .L.str.121: - .asciz "malloc ulogo buffer failed\n" - .size .L.str.121, 28 + .asciz "ulogo_addr=" + .size .L.str.121, 12 .type .L.str.122,@object .L.str.122: - .asciz "klogo_addr=0x%x" - .size .L.str.122, 16 + .asciz "klogo_addr=" + .size .L.str.122, 12 .type .L.str.123,@object .L.str.123: - .asciz "need show klogo, klogo addr = 0x%x\n" - .size .L.str.123, 36 + .asciz "ulogo_addr=0x%x" + .size .L.str.123, 16 .type .L.str.124,@object .L.str.124: - .asciz "malloc klogo buffer failed\n" - .size .L.str.124, 28 + .asciz "have ulogo display, ulogo addr = 0x%x\n" + .size .L.str.124, 39 .type .L.str.125,@object .L.str.125: - .asciz "no uboot logo, panel init\n" - .size .L.str.125, 27 + .asciz "malloc ulogo buffer failed\n" + .size .L.str.125, 28 .type .L.str.126,@object .L.str.126: - .asciz "ebc_dev_logo" - .size .L.str.126, 13 + .asciz "klogo_addr=0x%x" + .size .L.str.126, 16 .type .L.str.127,@object .L.str.127: + .asciz "need show klogo, klogo addr = 0x%x\n" + .size .L.str.127, 36 + + .type .L.str.128,@object +.L.str.128: + .asciz "malloc klogo buffer failed\n" + .size .L.str.128, 28 + + .type .L.str.129,@object +.L.str.129: + .asciz "no uboot logo, panel init\n" + .size .L.str.129, 27 + + .type .L.str.130,@object +.L.str.130: + .asciz "ebc_dev_logo" + .size .L.str.130, 13 + + .type .L.str.131,@object +.L.str.131: .asciz "ebc_dev_reset" - .size .L.str.127, 14 + .size .L.str.131, 14 .type ebc_misc,@object .data @@ -14564,7 +15833,7 @@ ebc_auto_assist_thread_sem: ebc_misc: .word 243 .zero 4 - .xword .L.str.115 + .xword .L.str.119 .xword ebc_ops .zero 16 .xword 0 @@ -14580,7 +15849,7 @@ ebc_misc: waveform_misc: .word 244 .zero 4 - .xword .L.str.147 + .xword .L.str.151 .xword waveform_ops .zero 16 .xword 0 @@ -14594,7 +15863,7 @@ waveform_misc: .type dev_attr_waveform_version,@object .p2align 3 dev_attr_waveform_version: - .xword .L.str.149 + .xword .L.str.153 .hword 292 .zero 6 .xword waveform_version_read @@ -14604,7 +15873,7 @@ dev_attr_waveform_version: .type dev_attr_pmic_name,@object .p2align 3 dev_attr_pmic_name: - .xword .L.str.151 + .xword .L.str.155 .hword 292 .zero 6 .xword pmic_name_read @@ -14614,7 +15883,7 @@ dev_attr_pmic_name: .type dev_attr_pmic_temp,@object .p2align 3 dev_attr_pmic_temp: - .xword .L.str.152 + .xword .L.str.156 .hword 292 .zero 6 .xword pmic_temp_read @@ -14624,7 +15893,7 @@ dev_attr_pmic_temp: .type dev_attr_pmic_vcom,@object .p2align 3 dev_attr_pmic_vcom: - .xword .L.str.154 + .xword .L.str.158 .hword 420 .zero 6 .xword pmic_vcom_read @@ -14634,7 +15903,7 @@ dev_attr_pmic_vcom: .type dev_attr_ebc_version,@object .p2align 3 dev_attr_ebc_version: - .xword .L.str.157 + .xword .L.str.161 .hword 292 .zero 6 .xword ebc_version_read @@ -14644,7 +15913,7 @@ dev_attr_ebc_version: .type dev_attr_ebc_state,@object .p2align 3 dev_attr_ebc_state: - .xword .L.str.158 + .xword .L.str.162 .hword 292 .zero 6 .xword ebc_state_read @@ -14654,7 +15923,7 @@ dev_attr_ebc_state: .type dev_attr_ebc_buf_state,@object .p2align 3 dev_attr_ebc_buf_state: - .xword .L.str.159 + .xword .L.str.163 .hword 292 .zero 6 .xword ebc_buf_state_read @@ -14664,7 +15933,7 @@ dev_attr_ebc_buf_state: .type dev_attr_auto_frame_state,@object .p2align 3 dev_attr_auto_frame_state: - .xword .L.str.160 + .xword .L.str.164 .hword 292 .zero 6 .xword auto_frame_state_read @@ -14674,7 +15943,7 @@ dev_attr_auto_frame_state: .type dev_attr_ebc_debug_level,@object .p2align 3 dev_attr_ebc_debug_level: - .xword .L.str.162 + .xword .L.str.166 .hword 420 .zero 6 .xword ebc_debug_level_read @@ -14684,7 +15953,7 @@ dev_attr_ebc_debug_level: .type dev_attr_wf_data,@object .p2align 3 dev_attr_wf_data: - .xword .L.str.163 + .xword .L.str.167 .hword 128 .zero 6 .xword 0 @@ -14694,7 +15963,7 @@ dev_attr_wf_data: .type dev_attr_overlay_wf_data,@object .p2align 3 dev_attr_overlay_wf_data: - .xword .L.str.168 + .xword .L.str.172 .hword 128 .zero 6 .xword 0 @@ -14704,7 +15973,7 @@ dev_attr_overlay_wf_data: .type dev_attr_ori_wf_data,@object .p2align 3 dev_attr_ori_wf_data: - .xword .L.str.169 + .xword .L.str.173 .hword 128 .zero 6 .xword 0 @@ -14714,7 +15983,7 @@ dev_attr_ori_wf_data: .type dev_attr_record_pix_wf,@object .p2align 3 dev_attr_record_pix_wf: - .xword .L.str.175 + .xword .L.str.179 .hword 128 .zero 6 .xword 0 @@ -14761,106 +16030,106 @@ ebc_ops: .xword 0 .size ebc_ops, 272 - .type .L.str.129,@object + .type .L.str.133,@object .section .rodata.str1.1,"aMS",@progbits,1 -.L.str.129: +.L.str.133: .asciz "%s: argp NULL\n" - .size .L.str.129, 15 + .size .L.str.133, 15 .type .L__func__.ebc_io_ctl,@object .L__func__.ebc_io_ctl: .asciz "ebc_io_ctl" .size .L__func__.ebc_io_ctl, 11 - .type .L.str.130,@object -.L.str.130: - .asciz "enable bg control\n" - .size .L.str.130, 19 - - .type .L.str.131,@object -.L.str.131: - .asciz "disable bg control\n" - .size .L.str.131, 20 - - .type .L.str.132,@object -.L.str.132: - .asciz "enable ebc overlay, you can use osd buf to show something over the system display\n" - .size .L.str.132, 83 - - .type .L.str.133,@object -.L.str.133: - .asciz "disable ebc overlay\n" - .size .L.str.133, 21 - .type .L.str.134,@object .L.str.134: - .asciz "EBC_GET_BUFFER_INFO failed\n" - .size .L.str.134, 28 + .asciz "enable bg control\n" + .size .L.str.134, 19 .type .L.str.135,@object .L.str.135: - .asciz "EBC_SET_DIFF_PERCENT = %d\n" - .size .L.str.135, 27 + .asciz "disable bg control\n" + .size .L.str.135, 20 .type .L.str.136,@object .L.str.136: - .asciz "EBC_FB_BLANK\n" - .size .L.str.136, 14 + .asciz "enable ebc overlay, you can use osd buf to show something over the system display\n" + .size .L.str.136, 83 .type .L.str.137,@object .L.str.137: - .asciz "EBC_FB_UNBLANK\n" - .size .L.str.137, 16 + .asciz "disable ebc overlay\n" + .size .L.str.137, 21 .type .L.str.138,@object .L.str.138: - .asciz "EBC_ENABLE_REPAIR = %d\n" - .size .L.str.138, 24 + .asciz "EBC_GET_BUFFER_INFO failed\n" + .size .L.str.138, 28 .type .L.str.139,@object .L.str.139: - .asciz "EBC_BALANCE_CTL = %d\n" - .size .L.str.139, 22 + .asciz "EBC_SET_DIFF_PERCENT = %d\n" + .size .L.str.139, 27 .type .L.str.140,@object .L.str.140: - .asciz "EBC_SET_FULL_REFRESH_WIDTH = %d\n" - .size .L.str.140, 33 + .asciz "EBC_FB_BLANK\n" + .size .L.str.140, 14 .type .L.str.141,@object .L.str.141: - .asciz "EBC_SET_FULL_REFRESH_TYPE = %d\n" - .size .L.str.141, 32 + .asciz "EBC_FB_UNBLANK\n" + .size .L.str.141, 16 .type .L.str.142,@object .L.str.142: - .asciz "EBC_SET_FORCE_TEMPERATURE = %d\n" - .size .L.str.142, 32 + .asciz "EBC_ENABLE_REPAIR = %d\n" + .size .L.str.142, 24 .type .L.str.143,@object .L.str.143: - .asciz "EBC_ENABLE_WAVEFORM_FIX = %d\n" - .size .L.str.143, 30 + .asciz "EBC_BALANCE_CTL = %d\n" + .size .L.str.143, 22 .type .L.str.144,@object .L.str.144: - .asciz "EBC_SET_REGAL_TYPE = %d\n" - .size .L.str.144, 25 + .asciz "EBC_SET_FULL_REFRESH_WIDTH = %d\n" + .size .L.str.144, 33 .type .L.str.145,@object .L.str.145: - .asciz "EBC_FORCE_FULL_USE_REGAL = %d\n" - .size .L.str.145, 31 + .asciz "EBC_SET_FULL_REFRESH_TYPE = %d\n" + .size .L.str.145, 32 .type .L.str.146,@object .L.str.146: - .asciz "%s: unknown cmd\n" - .size .L.str.146, 17 + .asciz "EBC_SET_FORCE_TEMPERATURE = %d\n" + .size .L.str.146, 32 .type .L.str.147,@object .L.str.147: + .asciz "EBC_ENABLE_WAVEFORM_FIX = %d\n" + .size .L.str.147, 30 + + .type .L.str.148,@object +.L.str.148: + .asciz "EBC_SET_REGAL_TYPE = %d\n" + .size .L.str.148, 25 + + .type .L.str.149,@object +.L.str.149: + .asciz "EBC_FORCE_FULL_USE_REGAL = %d\n" + .size .L.str.149, 31 + + .type .L.str.150,@object +.L.str.150: + .asciz "%s: unknown cmd\n" + .size .L.str.150, 17 + + .type .L.str.151,@object +.L.str.151: .asciz "waveform" - .size .L.str.147, 9 + .size .L.str.151, 9 .type waveform_ops,@object .section .rodata,"a",@progbits @@ -14902,161 +16171,161 @@ waveform_ops: .xword 0 .size waveform_ops, 272 - .type .L.str.149,@object - .section .rodata.str1.1,"aMS",@progbits,1 -.L.str.149: - .asciz "waveform_version" - .size .L.str.149, 17 - - .type .L.str.150,@object -.L.str.150: - .asciz "%s\n" - .size .L.str.150, 4 - - .type .L.str.151,@object -.L.str.151: - .asciz "pmic_name" - .size .L.str.151, 10 - - .type .L.str.152,@object -.L.str.152: - .asciz "pmic_temp" - .size .L.str.152, 10 - .type .L.str.153,@object + .section .rodata.str1.1,"aMS",@progbits,1 .L.str.153: - .asciz "%d\n" - .size .L.str.153, 4 + .asciz "waveform_version" + .size .L.str.153, 17 .type .L.str.154,@object .L.str.154: - .asciz "pmic_vcom" - .size .L.str.154, 10 + .asciz "%s\n" + .size .L.str.154, 4 .type .L.str.155,@object .L.str.155: - .asciz "invalid value = %s\n" - .size .L.str.155, 20 + .asciz "pmic_name" + .size .L.str.155, 10 .type .L.str.156,@object .L.str.156: - .asciz "set vcom value failed\n" - .size .L.str.156, 23 + .asciz "pmic_temp" + .size .L.str.156, 10 .type .L.str.157,@object .L.str.157: - .asciz "ebc_version" - .size .L.str.157, 12 + .asciz "%d\n" + .size .L.str.157, 4 .type .L.str.158,@object .L.str.158: - .asciz "ebc_state" + .asciz "pmic_vcom" .size .L.str.158, 10 .type .L.str.159,@object .L.str.159: - .asciz "ebc_buf_state" - .size .L.str.159, 14 + .asciz "invalid value = %s\n" + .size .L.str.159, 20 .type .L.str.160,@object .L.str.160: - .asciz "auto_frame_state" - .size .L.str.160, 17 + .asciz "set vcom value failed\n" + .size .L.str.160, 23 .type .L.str.161,@object .L.str.161: - .asciz "0\n" - .size .L.str.161, 3 + .asciz "ebc_version" + .size .L.str.161, 12 .type .L.str.162,@object .L.str.162: - .asciz "ebc_debug_level" - .size .L.str.162, 16 + .asciz "ebc_state" + .size .L.str.162, 10 .type .L.str.163,@object .L.str.163: - .asciz "wf_data" - .size .L.str.163, 8 + .asciz "ebc_buf_state" + .size .L.str.163, 14 .type .L.str.164,@object .L.str.164: - .asciz "603893" - .size .L.str.164, 7 + .asciz "auto_frame_state" + .size .L.str.164, 17 .type .L.str.165,@object .L.str.165: - .asciz "lutdata: %d frames\n" - .size .L.str.165, 20 + .asciz "0\n" + .size .L.str.165, 3 .type .L.str.166,@object .L.str.166: - .asciz "[%d-->%d]: \n" - .size .L.str.166, 13 + .asciz "ebc_debug_level" + .size .L.str.166, 16 .type .L.str.167,@object .L.str.167: - .asciz "\001c\0017%d, " - .size .L.str.167, 9 + .asciz "wf_data" + .size .L.str.167, 8 .type .L.str.168,@object .L.str.168: - .asciz "overlay_wf_data" - .size .L.str.168, 16 + .asciz "603893" + .size .L.str.168, 7 .type .L.str.169,@object .L.str.169: - .asciz "ori_wf_data" - .size .L.str.169, 12 + .asciz "lutdata: %d frames\n" + .size .L.str.169, 20 .type .L.str.170,@object .L.str.170: - .asciz "malloc wf_table buffer failed\n" - .size .L.str.170, 31 + .asciz "[%d-->%d]: \n" + .size .L.str.170, 13 .type .L.str.171,@object .L.str.171: - .asciz "603893 %d %d" - .size .L.str.171, 13 + .asciz "\001c\0017%d, " + .size .L.str.171, 9 .type .L.str.172,@object .L.str.172: + .asciz "overlay_wf_data" + .size .L.str.172, 16 + + .type .L.str.173,@object +.L.str.173: + .asciz "ori_wf_data" + .size .L.str.173, 12 + + .type .L.str.174,@object +.L.str.174: + .asciz "malloc wf_table buffer failed\n" + .size .L.str.174, 31 + + .type .L.str.175,@object +.L.str.175: + .asciz "603893 %d %d" + .size .L.str.175, 13 + + .type .L.str.176,@object +.L.str.176: .asciz "%s: wf mode %d on temp %d\n" - .size .L.str.172, 27 + .size .L.str.176, 27 .type .L__func__.ori_wf_data_write,@object .L__func__.ori_wf_data_write: .asciz "ori_wf_data_write" .size .L__func__.ori_wf_data_write, 18 - .type .L.str.173,@object -.L.str.173: - .asciz "%s: err code\n" - .size .L.str.173, 14 - - .type .L.str.174,@object -.L.str.174: - .asciz "%s: err lut_type or temp\n" - .size .L.str.174, 26 - - .type .L.str.175,@object -.L.str.175: - .asciz "record_pix_wf" - .size .L.str.175, 14 - - .type .L.str.176,@object -.L.str.176: - .asciz "%d,%d%n" - .size .L.str.176, 8 - .type .L.str.177,@object .L.str.177: - .asciz "device suspend\n" - .size .L.str.177, 16 + .asciz "%s: err code\n" + .size .L.str.177, 14 .type .L.str.178,@object .L.str.178: + .asciz "%s: err lut_type or temp\n" + .size .L.str.178, 26 + + .type .L.str.179,@object +.L.str.179: + .asciz "record_pix_wf" + .size .L.str.179, 14 + + .type .L.str.180,@object +.L.str.180: + .asciz "%d,%d%n" + .size .L.str.180, 8 + + .type .L.str.181,@object +.L.str.181: + .asciz "device suspend\n" + .size .L.str.181, 16 + + .type .L.str.182,@object +.L.str.182: .asciz "device resume\n" - .size .L.str.178, 15 + .size .L.str.182, 15 .ident "Android (8508608, based on r450784e) clang version 14.0.7 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0cca074e9238af8b4106c30add4418f6)" .section ".note.GNU-stack","",@progbits @@ -15095,12 +16364,12 @@ waveform_ops: .addrsig_sym ebc_suspend .addrsig_sym ebc_resume .addrsig_sym ebc_driver - .addrsig_sym __UNIQUE_ID___addressable_ebc_init466 + .addrsig_sym __UNIQUE_ID___addressable_ebc_init467 .addrsig_sym __exitcall_ebc_exit - .addrsig_sym __UNIQUE_ID_author467 - .addrsig_sym __UNIQUE_ID_description468 - .addrsig_sym __UNIQUE_ID_file469 - .addrsig_sym __UNIQUE_ID_license470 + .addrsig_sym __UNIQUE_ID_author468 + .addrsig_sym __UNIQUE_ID_description469 + .addrsig_sym __UNIQUE_ID_file470 + .addrsig_sym __UNIQUE_ID_license471 .addrsig_sym ebc_match .addrsig_sym ebc_pm .addrsig_sym __cpu_possible_mask diff --git a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S index 835e82d56a73..728e5b6ffda4 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S +++ b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S @@ -104,12 +104,12 @@ pvi_wf_get_lut: b.ne .LBB1_6 ldr w10, [x11, :lo12:pvi_wf_get_lut.fix] cmp w10, w21 - b.eq .LBB1_74 + b.eq .LBB1_58 .LBB1_6: adrp x10, need_pic cmp w22, #10 str w3, [x10, :lo12:need_pic] - b.eq .LBB1_73 + b.eq .LBB1_57 ldr x10, [x20, #16] adrp x25, waveformdata ldrb w9, [x8, #38] @@ -129,10 +129,10 @@ pvi_wf_get_lut: b .LBB1_16 .LBB1_12: mov w0, #-19 - b .LBB1_89 + b .LBB1_75 .LBB1_13: mov w0, #-22 - b .LBB1_89 + b .LBB1_75 .LBB1_14: mov w10, wzr mov w8, #-1 @@ -148,9 +148,9 @@ pvi_wf_get_lut: and w0, w0, #0xff mov w1, w23 bl get_wf_frm_num - tbnz w0, #31, .LBB1_90 + tbnz w0, #31, .LBB1_76 mov w23, w0 - cbz w24, .LBB1_72 + cbz w24, .LBB1_56 cmp w22, #7 b.eq .LBB1_20 cmp w22, #1 @@ -237,7 +237,7 @@ pvi_wf_get_lut: strb w16, [x10, #64] strb w17, [x9, #94] strb w16, [x9, #64] - b .LBB1_72 + b .LBB1_56 .LBB1_28: sub w8, w22, #13 cmp w8, #1 @@ -246,29 +246,26 @@ pvi_wf_get_lut: mov w1, w23 mov w2, w21 bl pvi_wf_normal_fix - b .LBB1_72 + b .LBB1_56 .LBB1_30: sub w8, w22, #5 cmp w8, #1 - b.hi .LBB1_34 - cbz w23, .LBB1_72 - ldr x8, [x20, #16] - mov w9, w23 - cmp w23, #1 - b.ne .LBB1_38 - mov x10, xzr - b .LBB1_50 -.LBB1_34: + b.hi .LBB1_32 + ldr x0, [x20, #16] + mov w1, w23 + bl pvi_wf_regal_fix + b .LBB1_56 +.LBB1_32: cmp w22, #15 - b.ne .LBB1_72 - cbz w23, .LBB1_72 + b.ne .LBB1_56 + cbz w23, .LBB1_56 ldr x8, [x25, :lo12:waveformdata] mov w9, w23 cmp w23, #1 - b.ne .LBB1_52 + b.ne .LBB1_36 mov x10, xzr - b .LBB1_70 -.LBB1_38: + b .LBB1_54 +.LBB1_36: sub x12, x9, #1 mov x10, xzr and x11, x12, #0xffffffff @@ -277,104 +274,45 @@ pvi_wf_get_lut: cset w13, ne cmp xzr, x12, lsr #54 cset w11, ne - tbnz w14, #31, .LBB1_50 - tbnz w13, #0, .LBB1_50 + tbnz w14, #31, .LBB1_54 + tbnz w13, #0, .LBB1_54 lsr x13, x12, #32 - cbnz x13, .LBB1_50 - add x13, x8, #30 - lsl x12, x12, #10 - add x14, x13, x12 - cmp x14, x13 - b.lo .LBB1_50 - tbnz w11, #0, .LBB1_50 - add x13, x8, #29 - add x14, x13, x12 - cmp x14, x13 - b.lo .LBB1_50 - tbnz w11, #0, .LBB1_50 - add x13, x8, #31 - add x12, x13, x12 - cmp x12, x13 - b.lo .LBB1_50 - tbnz w11, #0, .LBB1_50 - and x10, x9, #0xfffffffe - mov w11, #1024 - mov x12, x10 -.LBB1_48: - sub w13, w11, #1024 - add x14, x8, w11, sxtw - subs x12, x12, #2 - add w11, w11, #2048 - add x13, x8, w13, sxtw - ldrb w15, [x14, #30] - ldrb w16, [x13, #30] - strb w15, [x14, #31] - strb w15, [x14, #29] - strb w16, [x13, #31] - strb w16, [x13, #29] - b.ne .LBB1_48 - cmp x10, x9 - b.eq .LBB1_72 -.LBB1_50: - sub x9, x9, x10 - lsl w10, w10, #10 -.LBB1_51: - add x11, x8, w10, sxtw - subs x9, x9, #1 - add w10, w10, #1024 - ldrb w12, [x11, #30] - strb w12, [x11, #31] - strb w12, [x11, #29] - b.ne .LBB1_51 - b .LBB1_72 -.LBB1_52: - sub x12, x9, #1 - mov x10, xzr - and x11, x12, #0xffffffff - lsl x14, x11, #10 - tst x14, #0xffffffff00000000 - cset w13, ne - cmp xzr, x12, lsr #54 - cset w11, ne - tbnz w14, #31, .LBB1_70 - tbnz w13, #0, .LBB1_70 - lsr x13, x12, #32 - cbnz x13, .LBB1_70 + cbnz x13, .LBB1_54 add x13, x8, #957 lsl x12, x12, #10 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_70 - tbnz w11, #0, .LBB1_70 + b.lo .LBB1_54 + tbnz w11, #0, .LBB1_54 add x13, x8, #1023 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_70 - tbnz w11, #0, .LBB1_70 + b.lo .LBB1_54 + tbnz w11, #0, .LBB1_54 add x13, x8, #991 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_70 - tbnz w11, #0, .LBB1_70 + b.lo .LBB1_54 + tbnz w11, #0, .LBB1_54 add x13, x8, #1022 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_70 - tbnz w11, #0, .LBB1_70 + b.lo .LBB1_54 + tbnz w11, #0, .LBB1_54 add x13, x8, #990 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_70 - tbnz w11, #0, .LBB1_70 + b.lo .LBB1_54 + tbnz w11, #0, .LBB1_54 add x13, x8, #958 add x12, x13, x12 cmp x12, x13 - b.lo .LBB1_70 - tbnz w11, #0, .LBB1_70 + b.lo .LBB1_54 + tbnz w11, #0, .LBB1_54 and x10, x9, #0xfffffffe mov w11, #1024 mov x12, x10 -.LBB1_68: +.LBB1_52: sub w14, w11, #1024 add x13, x8, w11, sxtw subs x12, x12, #2 @@ -392,13 +330,13 @@ pvi_wf_get_lut: strb w16, [x14, #991] strb w16, [x14, #1023] strb w15, [x13, #1023] - b.ne .LBB1_68 + b.ne .LBB1_52 cmp x10, x9 - b.eq .LBB1_72 -.LBB1_70: + b.eq .LBB1_56 +.LBB1_54: sub x9, x9, x10 lsl w10, w10, #10 -.LBB1_71: +.LBB1_55: add x11, x8, w10, sxtw subs x9, x9, #1 add w10, w10, #1024 @@ -408,8 +346,8 @@ pvi_wf_get_lut: strb w12, [x11, #1022] strb w12, [x11, #991] strb w12, [x11, #1023] - b.ne .LBB1_71 -.LBB1_72: + b.ne .LBB1_55 +.LBB1_56: ldrb w8, [x20, #1] adrp x25, pvi_wf_get_lut.sftemp mov w9, #21846 @@ -424,13 +362,13 @@ pvi_wf_get_lut: add w9, w8, w9 adrp x8, pvi_wf_get_lut.fix str w21, [x8, :lo12:pvi_wf_get_lut.fix] -.LBB1_73: +.LBB1_57: cmp w27, w9 - b.ne .LBB1_75 -.LBB1_74: + b.ne .LBB1_59 +.LBB1_58: mov w0, wzr - b .LBB1_89 -.LBB1_75: + b .LBB1_75 +.LBB1_59: ldr x8, [x20, #24] adrp x23, waveformdata str x8, [x23, :lo12:waveformdata] @@ -438,26 +376,26 @@ pvi_wf_get_lut: ldr x10, [x26, :lo12:global_waveform] mov w21, w0 ldrb w8, [x10, #38] - cbz w8, .LBB1_80 + cbz w8, .LBB1_64 mov x9, xzr add x10, x10, #48 -.LBB1_77: +.LBB1_61: ldrb w11, [x10, x9] cmp w11, w19 - b.ge .LBB1_81 + b.ge .LBB1_65 add x9, x9, #1 cmp x8, x9 - b.ne .LBB1_77 + b.ne .LBB1_61 mov w10, #-1 mov w9, w8 - b .LBB1_82 -.LBB1_80: + b .LBB1_66 +.LBB1_64: mov w9, wzr mov w10, #-1 - b .LBB1_82 -.LBB1_81: + b .LBB1_66 +.LBB1_65: mov w10, w9 -.LBB1_82: +.LBB1_66: mov w0, w21 sub w11, w9, #1 cmp w9, w8 @@ -466,71 +404,37 @@ pvi_wf_get_lut: and w0, w0, #0xff mov w1, w22 bl get_wf_frm_num - tbnz w0, #31, .LBB1_90 + tbnz w0, #31, .LBB1_76 cmp w21, #1 - b.ne .LBB1_88 + b.ne .LBB1_74 ldr x8, [x23, :lo12:waveformdata] - cbz w0, .LBB1_87 - mov w10, w0 - mov x9, xzr - lsl x10, x10, #10 -.LBB1_86: - add x11, x8, w9, sxtw - add x9, x9, #1024 - cmp x10, x9 - ldrb w12, [x11, #960] - ldrb w13, [x11, #30] - strb w12, [x11, #896] - strb w12, [x11, #992] - ldrb w12, [x11, #94] - strb w13, [x11, #31] - strb w13, [x11, #29] - ldrb w13, [x11, #158] - strb w12, [x11, #95] - strb w12, [x11, #93] - ldrb w12, [x11, #222] - strb w13, [x11, #159] - strb w13, [x11, #157] - ldrb w13, [x11, #286] - strb w12, [x11, #223] - strb w12, [x11, #221] - ldrb w12, [x11, #350] - strb w13, [x11, #287] - strb w13, [x11, #285] - ldrb w13, [x11, #414] - strb w12, [x11, #351] - strb w12, [x11, #349] - ldrb w12, [x11, #478] - strb w13, [x11, #415] - strb w13, [x11, #413] - ldrb w13, [x11, #542] - strb w12, [x11, #479] - strb w12, [x11, #477] - ldrb w12, [x11, #606] - strb w13, [x11, #543] - strb w13, [x11, #541] - ldrb w13, [x11, #670] - strb w12, [x11, #607] - strb w12, [x11, #605] - ldrb w12, [x11, #734] - strb w13, [x11, #671] - strb w13, [x11, #669] - ldrb w13, [x11, #798] - strb w12, [x11, #735] - strb w12, [x11, #733] - ldrb w12, [x11, #862] - strb w13, [x11, #799] - strb w13, [x11, #797] - ldrb w13, [x11, #926] - strb w12, [x11, #863] - strb w12, [x11, #861] - ldrb w12, [x11, #990] - strb w13, [x11, #927] - strb w13, [x11, #925] - strb w12, [x11, #991] - strb w12, [x11, #989] - b.ne .LBB1_86 -.LBB1_87: + cbz w0, .LBB1_73 + mov w9, wzr + mov x10, xzr + mov w11, w0 + add x12, x8, #31 + add x13, x8, #992 +.LBB1_70: + sxtw x15, w9 + mov x16, #-16 + add x14, x12, x15 + add x15, x13, x15 +.LBB1_71: + ldurb w17, [x14, #-1] + add x16, x16, #16 + cmp x16, #224 + strb w17, [x14] + sturb w17, [x14, #-2] + add x14, x14, #64 + ldurb w17, [x15, #-32] + sturb w17, [x15, #-64] + strb w17, [x15], #2 + b.lo .LBB1_71 + add x10, x10, #1 + add w9, w9, #1024 + cmp x10, x11 + b.ne .LBB1_70 +.LBB1_73: lsl w9, w0, #10 mov w10, #-6144 add w10, w9, w10 @@ -561,13 +465,13 @@ pvi_wf_get_lut: strb w14, [x8, #991] strb w14, [x8, #959] strb w14, [x8, #1023] -.LBB1_88: +.LBB1_74: ldrb w8, [x20] bfi w8, w0, #8, #24 mov w0, wzr str w8, [x20] str w19, [x25, :lo12:pvi_wf_get_lut.sftemp] -.LBB1_89: +.LBB1_75: ldp x20, x19, [sp, #80] ldp x22, x21, [sp, #64] ldp x24, x23, [sp, #48] @@ -576,12 +480,12 @@ pvi_wf_get_lut: ldp x29, x30, [sp], #96 ldr x30, [x18, #-8]! ret -.LBB1_90: +.LBB1_76: adrp x0, .L.str add x0, x0, :lo12:.L.str bl _printk mov w0, #-5 - b .LBB1_89 + b .LBB1_75 .Lfunc_end1: .size pvi_wf_get_lut, .Lfunc_end1-pvi_wf_get_lut @@ -1105,6 +1009,69 @@ pvi_wf_normal_fix: .Lfunc_end4: .size pvi_wf_normal_fix, .Lfunc_end4-pvi_wf_normal_fix + .p2align 2 + .type pvi_wf_regal_fix,@function +pvi_wf_regal_fix: + cmp w1, #1 + b.lt .LBB5_3 + mov w9, w1 + mov x8, xzr + lsl x9, x9, #10 +.LBB5_2: + add x10, x0, w8, sxtw + add x8, x8, #1024 + cmp x9, x8 + ldrb w11, [x10, #30] + ldrb w12, [x10, #94] + strb w11, [x10, #31] + strb w11, [x10, #29] + ldrb w11, [x10, #158] + strb w12, [x10, #95] + strb w12, [x10, #93] + ldrb w12, [x10, #222] + strb w11, [x10, #159] + strb w11, [x10, #157] + ldrb w11, [x10, #286] + strb w12, [x10, #223] + strb w12, [x10, #221] + ldrb w12, [x10, #350] + strb w11, [x10, #287] + strb w11, [x10, #285] + ldrb w11, [x10, #414] + strb w12, [x10, #351] + strb w12, [x10, #349] + ldrb w12, [x10, #478] + strb w11, [x10, #415] + strb w11, [x10, #413] + ldrb w11, [x10, #542] + strb w12, [x10, #479] + strb w12, [x10, #477] + ldrb w12, [x10, #606] + strb w11, [x10, #543] + strb w11, [x10, #541] + ldrb w11, [x10, #670] + strb w12, [x10, #607] + strb w12, [x10, #605] + ldrb w12, [x10, #734] + strb w11, [x10, #671] + strb w11, [x10, #669] + ldrb w11, [x10, #798] + strb w12, [x10, #735] + strb w12, [x10, #733] + ldrb w12, [x10, #862] + strb w11, [x10, #799] + strb w11, [x10, #797] + ldrb w11, [x10, #926] + strb w12, [x10, #863] + strb w12, [x10, #861] + strb w11, [x10, #927] + strb w11, [x10, #925] + b.ne .LBB5_2 +.LBB5_3: + ret +.Lfunc_end5: + .size pvi_wf_regal_fix, .Lfunc_end5-pvi_wf_regal_fix + .globl pvi_wf_get_original_lut .p2align 2 .type pvi_wf_get_original_lut,@function @@ -1115,42 +1082,42 @@ pvi_wf_get_original_lut: stp x20, x19, [sp, #16] mov x29, sp ldr x10, [x8, :lo12:global_waveform] - cbz x10, .LBB5_8 + cbz x10, .LBB6_8 mov x19, x0 - cbnz x0, .LBB5_3 + cbnz x0, .LBB6_3 mov w8, #16 ldr x8, [x8] - cbz x8, .LBB5_14 -.LBB5_3: + cbz x8, .LBB6_14 +.LBB6_3: adrp x9, need_pic ldr x11, [x19, #16] adrp x12, waveformdata ldrb w8, [x10, #38] str w3, [x9, :lo12:need_pic] str x11, [x12, :lo12:waveformdata] - cbz w8, .LBB5_9 + cbz w8, .LBB6_9 mov x9, xzr add x10, x10, #48 -.LBB5_5: +.LBB6_5: ldrb w11, [x10, x9] cmp w11, w2 - b.ge .LBB5_10 + b.ge .LBB6_10 add x9, x9, #1 cmp x8, x9 - b.ne .LBB5_5 + b.ne .LBB6_5 mov w10, #-1 mov w9, w8 - b .LBB5_11 -.LBB5_8: + b .LBB6_11 +.LBB6_8: mov w0, #-19 - b .LBB5_13 -.LBB5_9: + b .LBB6_13 +.LBB6_9: mov w9, wzr mov w10, #-1 - b .LBB5_11 -.LBB5_10: + b .LBB6_11 +.LBB6_10: mov w10, w9 -.LBB5_11: +.LBB6_11: mov w0, w1 sub w11, w9, #1 cmp w9, w8 @@ -1159,27 +1126,27 @@ pvi_wf_get_original_lut: and w0, w0, #0xff mov w1, w20 bl get_wf_frm_num - tbnz w0, #31, .LBB5_15 + tbnz w0, #31, .LBB6_15 ldrb w8, [x19, #1] orr w8, w0, w8, lsl #8 mov w0, wzr str w8, [x19] -.LBB5_13: +.LBB6_13: ldp x20, x19, [sp, #16] ldp x29, x30, [sp], #32 ldr x30, [x18, #-8]! ret -.LBB5_14: +.LBB6_14: mov w0, #-22 - b .LBB5_13 -.LBB5_15: + b .LBB6_13 +.LBB6_15: adrp x0, .L.str add x0, x0, :lo12:.L.str bl _printk mov w0, #-5 - b .LBB5_13 -.Lfunc_end5: - .size pvi_wf_get_original_lut, .Lfunc_end5-pvi_wf_get_original_lut + b .LBB6_13 +.Lfunc_end6: + .size pvi_wf_get_original_lut, .Lfunc_end6-pvi_wf_get_original_lut .globl pvi_wf_input .p2align 2 @@ -1191,162 +1158,162 @@ pvi_wf_input: adrp x20, global_waveform mov x29, sp ldr x8, [x20, :lo12:global_waveform] - cbz x8, .LBB6_3 + cbz x8, .LBB7_3 mov w0, #-16 -.LBB6_2: +.LBB7_2: ldp x20, x19, [sp, #16] ldp x29, x30, [sp], #32 ldr x30, [x18, #-8]! ret -.LBB6_3: +.LBB7_3: ldrb w1, [x0, #16] mov x19, x0 adrp x8, maxpic sub w10, w1, #9 cmp w10, #105 - b.hi .LBB6_7 - adrp x11, .LJTI6_0 + b.hi .LBB7_7 + adrp x11, .LJTI7_0 mov w9, #32 - add x11, x11, :lo12:.LJTI6_0 - adr x12, .LBB6_5 + add x11, x11, :lo12:.LJTI7_0 + adr x12, .LBB7_5 ldrb w13, [x11, x10] add x12, x12, x13, lsl #2 br x12 -.LBB6_5: +.LBB7_5: str w9, [x8, :lo12:maxpic] -.LBB6_6: +.LBB7_6: adrp x0, .L.str.3 ldr w2, [x8, :lo12:maxpic] add x0, x0, :lo12:.L.str.3 bl _printk mov w0, wzr str x19, [x20, :lo12:global_waveform] - b .LBB6_2 -.LBB6_7: + b .LBB7_2 +.LBB7_7: adrp x9, custom_mode_table+9 ldrb w9, [x9, :lo12:custom_mode_table+9] cmp w1, w9 - b.ne .LBB6_9 + b.ne .LBB7_9 adrp x9, custom_mode_table+12 ldr w9, [x9, :lo12:custom_mode_table+12] - b .LBB6_5 -.LBB6_9: + b .LBB7_5 +.LBB7_9: adrp x0, .L.str.2 ldrb w2, [x19, #22] add x0, x0, :lo12:.L.str.2 bl _printk mov w0, #-8 - b .LBB6_2 -.Lfunc_end6: - .size pvi_wf_input, .Lfunc_end6-pvi_wf_input + b .LBB7_2 +.Lfunc_end7: + .size pvi_wf_input, .Lfunc_end7-pvi_wf_input .section .rodata,"a",@progbits -.LJTI6_0: - .byte (.LBB6_6-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_6-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_6-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_6-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_7-.LBB6_5)>>2 - .byte (.LBB6_5-.LBB6_5)>>2 +.LJTI7_0: + .byte (.LBB7_6-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_6-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_6-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_6-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_7-.LBB7_5)>>2 + .byte (.LBB7_5-.LBB7_5)>>2 .text .globl pvi_wf_get_version @@ -1355,24 +1322,24 @@ pvi_wf_input: pvi_wf_get_version: adrp x8, global_waveform ldr x9, [x8, :lo12:global_waveform] - cbz x9, .LBB7_4 + cbz x9, .LBB8_4 adrp x0, pvi_wf_get_version.spi_id_buffer mov x8, xzr add x9, x9, #65 add x0, x0, :lo12:pvi_wf_get_version.spi_id_buffer -.LBB7_2: +.LBB8_2: ldrb w10, [x9, x8] strb w10, [x0, x8] add x8, x8, #1 cmp x8, #31 - b.ne .LBB7_2 + b.ne .LBB8_2 strb wzr, [x0, #31] ret -.LBB7_4: +.LBB8_4: mov x0, xzr ret -.Lfunc_end7: - .size pvi_wf_get_version, .Lfunc_end7-pvi_wf_get_version +.Lfunc_end8: + .size pvi_wf_get_version, .Lfunc_end8-pvi_wf_get_version .globl pvi_wf_get_wf_bit .p2align 2 @@ -1385,8 +1352,8 @@ pvi_wf_get_wf_bit: cmp x8, #0 csel w0, wzr, w9, eq ret -.Lfunc_end8: - .size pvi_wf_get_wf_bit, .Lfunc_end8-pvi_wf_get_wf_bit +.Lfunc_end9: + .size pvi_wf_get_wf_bit, .Lfunc_end9-pvi_wf_get_wf_bit .type pvi_mode_table,@object .section .rodata,"a",@progbits diff --git a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S index c52e07ede2fe..b6c1dc6a7fb8 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S +++ b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S @@ -245,10 +245,10 @@ rkf_wf_get_lut: b.ne .LBB3_4 ldr w9, [x9, :lo12:rkf_wf_get_lut.stype] cmp w9, w21 - b.eq .LBB3_83 + b.eq .LBB3_67 .LBB3_4: cmp w21, #10 - b.eq .LBB3_82 + b.eq .LBB3_66 ldr x0, [x20, #8] cbz x0, .LBB3_7 bl kfree @@ -258,7 +258,7 @@ rkf_wf_get_lut: mov w1, w21 mov w2, w19 bl parse_wf_data - tbnz w0, #31, .LBB3_94 + tbnz w0, #31, .LBB3_80 mov w25, w0 ldr x1, [x20, #16] cbz w21, .LBB3_12 @@ -268,10 +268,10 @@ rkf_wf_get_lut: b .LBB3_17 .LBB3_10: mov w0, #-19 - b .LBB3_93 + b .LBB3_79 .LBB3_11: mov w0, #-22 - b .LBB3_93 + b .LBB3_79 .LBB3_12: cbz w25, .LBB3_17 mov w8, wzr @@ -345,7 +345,7 @@ rkf_wf_get_lut: cmp x10, x11 b.ne .LBB3_14 .LBB3_17: - cbz w24, .LBB3_72 + cbz w24, .LBB3_56 cmp w21, #7 b.eq .LBB3_20 cmp w21, #1 @@ -433,7 +433,7 @@ rkf_wf_get_lut: strb w16, [x10, #64] strb w17, [x9, #94] strb w16, [x9, #64] - b .LBB3_72 + b .LBB3_56 .LBB3_28: sub w8, w21, #13 cmp w8, #1 @@ -442,31 +442,27 @@ rkf_wf_get_lut: mov w1, w25 mov w2, w23 bl rkf_wf_normal_fix - b .LBB3_72 + b .LBB3_56 .LBB3_30: sub w8, w21, #5 cmp w8, #1 - b.hi .LBB3_34 - cmp w25, #1 - b.lt .LBB3_72 - ldr x8, [x20, #16] - mov w9, w25 - cmp w25, #1 - b.ne .LBB3_38 - mov x10, xzr - b .LBB3_50 -.LBB3_34: + b.hi .LBB3_32 + ldr x0, [x20, #16] + mov w1, w25 + bl rkf_wf_regal_fix + b .LBB3_56 +.LBB3_32: cmp w21, #15 - b.ne .LBB3_72 + b.ne .LBB3_56 cmp w25, #1 - b.lt .LBB3_72 + b.lt .LBB3_56 ldr x8, [x20, #16] mov w9, w25 cmp w25, #1 - b.ne .LBB3_52 + b.ne .LBB3_36 mov x10, xzr - b .LBB3_70 -.LBB3_38: + b .LBB3_54 +.LBB3_36: sub x12, x9, #1 mov x10, xzr and x11, x12, #0xffffffff @@ -475,104 +471,45 @@ rkf_wf_get_lut: cset w13, ne cmp xzr, x12, lsr #54 cset w11, ne - tbnz w14, #31, .LBB3_50 - tbnz w13, #0, .LBB3_50 + tbnz w14, #31, .LBB3_54 + tbnz w13, #0, .LBB3_54 lsr x13, x12, #32 - cbnz x13, .LBB3_50 - add x13, x8, #30 - lsl x12, x12, #10 - add x14, x13, x12 - cmp x14, x13 - b.lo .LBB3_50 - tbnz w11, #0, .LBB3_50 - add x13, x8, #29 - add x14, x13, x12 - cmp x14, x13 - b.lo .LBB3_50 - tbnz w11, #0, .LBB3_50 - add x13, x8, #31 - add x12, x13, x12 - cmp x12, x13 - b.lo .LBB3_50 - tbnz w11, #0, .LBB3_50 - and x10, x9, #0xfffffffe - mov w11, #1024 - mov x12, x10 -.LBB3_48: - sub w13, w11, #1024 - add x14, x8, w11, sxtw - subs x12, x12, #2 - add w11, w11, #2048 - add x13, x8, w13, sxtw - ldrb w15, [x14, #30] - ldrb w16, [x13, #30] - strb w15, [x14, #31] - strb w15, [x14, #29] - strb w16, [x13, #31] - strb w16, [x13, #29] - b.ne .LBB3_48 - cmp x10, x9 - b.eq .LBB3_72 -.LBB3_50: - sub x9, x9, x10 - lsl w10, w10, #10 -.LBB3_51: - add x11, x8, w10, sxtw - subs x9, x9, #1 - add w10, w10, #1024 - ldrb w12, [x11, #30] - strb w12, [x11, #31] - strb w12, [x11, #29] - b.ne .LBB3_51 - b .LBB3_72 -.LBB3_52: - sub x12, x9, #1 - mov x10, xzr - and x11, x12, #0xffffffff - lsl x14, x11, #10 - tst x14, #0xffffffff00000000 - cset w13, ne - cmp xzr, x12, lsr #54 - cset w11, ne - tbnz w14, #31, .LBB3_70 - tbnz w13, #0, .LBB3_70 - lsr x13, x12, #32 - cbnz x13, .LBB3_70 + cbnz x13, .LBB3_54 add x13, x8, #957 lsl x12, x12, #10 add x14, x13, x12 cmp x14, x13 - b.lo .LBB3_70 - tbnz w11, #0, .LBB3_70 + b.lo .LBB3_54 + tbnz w11, #0, .LBB3_54 add x13, x8, #1023 add x14, x13, x12 cmp x14, x13 - b.lo .LBB3_70 - tbnz w11, #0, .LBB3_70 + b.lo .LBB3_54 + tbnz w11, #0, .LBB3_54 add x13, x8, #991 add x14, x13, x12 cmp x14, x13 - b.lo .LBB3_70 - tbnz w11, #0, .LBB3_70 + b.lo .LBB3_54 + tbnz w11, #0, .LBB3_54 add x13, x8, #1022 add x14, x13, x12 cmp x14, x13 - b.lo .LBB3_70 - tbnz w11, #0, .LBB3_70 + b.lo .LBB3_54 + tbnz w11, #0, .LBB3_54 add x13, x8, #990 add x14, x13, x12 cmp x14, x13 - b.lo .LBB3_70 - tbnz w11, #0, .LBB3_70 + b.lo .LBB3_54 + tbnz w11, #0, .LBB3_54 add x13, x8, #958 add x12, x13, x12 cmp x12, x13 - b.lo .LBB3_70 - tbnz w11, #0, .LBB3_70 + b.lo .LBB3_54 + tbnz w11, #0, .LBB3_54 and x10, x9, #0xfffffffe mov w11, #1024 mov x12, x10 -.LBB3_68: +.LBB3_52: sub w14, w11, #1024 add x13, x8, w11, sxtw subs x12, x12, #2 @@ -590,13 +527,13 @@ rkf_wf_get_lut: strb w16, [x14, #991] strb w16, [x14, #1023] strb w15, [x13, #1023] - b.ne .LBB3_68 + b.ne .LBB3_52 cmp x10, x9 - b.eq .LBB3_72 -.LBB3_70: + b.eq .LBB3_56 +.LBB3_54: sub x9, x9, x10 lsl w10, w10, #10 -.LBB3_71: +.LBB3_55: add x11, x8, w10, sxtw subs x9, x9, #1 add w10, w10, #1024 @@ -606,13 +543,13 @@ rkf_wf_get_lut: strb w12, [x11, #1022] strb w12, [x11, #991] strb w12, [x11, #1023] - b.ne .LBB3_71 -.LBB3_72: + b.ne .LBB3_55 +.LBB3_56: ldr x0, [x20, #8] - cbz x0, .LBB3_74 + cbz x0, .LBB3_58 bl kfree str xzr, [x20, #8] -.LBB3_74: +.LBB3_58: add w8, w25, #15 add w9, w25, #30 cmp w8, #0 @@ -624,11 +561,11 @@ rkf_wf_get_lut: mov x0, x24 bl __kmalloc str x0, [x20, #8] - cbz x0, .LBB3_95 + cbz x0, .LBB3_81 ldr x27, [x20, #16] stp w22, w19, [sp] str x25, [sp, #8] - cbz x27, .LBB3_96 + cbz x27, .LBB3_82 ldr w8, [x28, :lo12:need_pic] mov w1, wzr mov x2, x24 @@ -637,7 +574,7 @@ rkf_wf_get_lut: cset w28, ne bl memset cmp w25, #1 - b.lt .LBB3_81 + b.lt .LBB3_65 ldr x9, [sp, #8] mov w10, #1 mov w11, #2 @@ -671,7 +608,7 @@ rkf_wf_get_lut: lsl x4, x4, x28 lsl x5, x5, x28 lsl x6, x6, x28 -.LBB3_78: +.LBB3_62: lsl w22, w8, #9 mov w24, #31 bfi w24, w8, #9, #23 @@ -682,7 +619,7 @@ rkf_wf_get_lut: mov x7, xzr add x24, x27, w24, sxtw add x30, x23, w22, sxtw #2 -.LBB3_79: +.LBB3_63: lsl w22, w7, w28 lsl x25, x7, #2 add x7, x7, #1 @@ -752,11 +689,11 @@ rkf_wf_get_lut: ldrb w22, [x22, x6] orr w19, w19, w22, lsl #30 str w19, [x30, x25] - b.ne .LBB3_79 + b.ne .LBB3_63 add x8, x8, #1 cmp x8, x9 - b.ne .LBB3_78 -.LBB3_81: + b.ne .LBB3_62 +.LBB3_65: ldrb w8, [x20, #1] adrp x25, rkf_wf_get_lut.sftemp ldr x9, [sp, #8] @@ -772,94 +709,60 @@ rkf_wf_get_lut: add w8, w8, w9 adrp x9, rkf_wf_get_lut.stype str w21, [x9, :lo12:rkf_wf_get_lut.stype] -.LBB3_82: +.LBB3_66: cmp w22, w8 - b.ne .LBB3_84 -.LBB3_83: + b.ne .LBB3_68 +.LBB3_67: mov w0, wzr - b .LBB3_93 -.LBB3_84: + b .LBB3_79 +.LBB3_68: ldr x0, [x20, #8] - cbz x0, .LBB3_86 + cbz x0, .LBB3_70 bl kfree str xzr, [x20, #8] -.LBB3_86: +.LBB3_70: bl epd_overlay_lut mov w22, w0 mov x0, x20 mov w1, w22 mov w2, w19 bl parse_wf_data - tbnz w0, #31, .LBB3_94 + tbnz w0, #31, .LBB3_80 mov w21, w0 ldr x1, [x20, #24] mov x0, x20 mov w2, w21 bl rkf_lut_wf_table cmp w22, #1 - b.ne .LBB3_92 + b.ne .LBB3_78 ldr x8, [x20, #24] - cbz w21, .LBB3_91 - mov w10, w21 - mov x9, xzr - lsl x10, x10, #10 -.LBB3_90: - add x11, x8, w9, sxtw - add x9, x9, #1024 - cmp x10, x9 - ldrb w12, [x11, #960] - ldrb w13, [x11, #30] - strb w12, [x11, #896] - strb w12, [x11, #992] - ldrb w12, [x11, #94] - strb w13, [x11, #31] - strb w13, [x11, #29] - ldrb w13, [x11, #158] - strb w12, [x11, #95] - strb w12, [x11, #93] - ldrb w12, [x11, #222] - strb w13, [x11, #159] - strb w13, [x11, #157] - ldrb w13, [x11, #286] - strb w12, [x11, #223] - strb w12, [x11, #221] - ldrb w12, [x11, #350] - strb w13, [x11, #287] - strb w13, [x11, #285] - ldrb w13, [x11, #414] - strb w12, [x11, #351] - strb w12, [x11, #349] - ldrb w12, [x11, #478] - strb w13, [x11, #415] - strb w13, [x11, #413] - ldrb w13, [x11, #542] - strb w12, [x11, #479] - strb w12, [x11, #477] - ldrb w12, [x11, #606] - strb w13, [x11, #543] - strb w13, [x11, #541] - ldrb w13, [x11, #670] - strb w12, [x11, #607] - strb w12, [x11, #605] - ldrb w12, [x11, #734] - strb w13, [x11, #671] - strb w13, [x11, #669] - ldrb w13, [x11, #798] - strb w12, [x11, #735] - strb w12, [x11, #733] - ldrb w12, [x11, #862] - strb w13, [x11, #799] - strb w13, [x11, #797] - ldrb w13, [x11, #926] - strb w12, [x11, #863] - strb w12, [x11, #861] - ldrb w12, [x11, #990] - strb w13, [x11, #927] - strb w13, [x11, #925] - strb w12, [x11, #991] - strb w12, [x11, #989] - b.ne .LBB3_90 -.LBB3_91: + cbz w21, .LBB3_77 + mov w9, wzr + mov x10, xzr + mov w11, w21 + add x12, x8, #31 + add x13, x8, #992 +.LBB3_74: + sxtw x15, w9 + mov x16, #-16 + add x14, x12, x15 + add x15, x13, x15 +.LBB3_75: + ldurb w17, [x14, #-1] + add x16, x16, #16 + cmp x16, #224 + strb w17, [x14] + sturb w17, [x14, #-2] + add x14, x14, #64 + ldurb w17, [x15, #-32] + sturb w17, [x15, #-64] + strb w17, [x15], #2 + b.lo .LBB3_75 + add x10, x10, #1 + add w9, w9, #1024 + cmp x10, x11 + b.ne .LBB3_74 +.LBB3_77: lsl w9, w21, #10 mov w10, #-6144 add w10, w9, w10 @@ -890,13 +793,13 @@ rkf_wf_get_lut: strb w14, [x8, #991] strb w14, [x8, #959] strb w14, [x8, #1023] -.LBB3_92: +.LBB3_78: ldrb w8, [x20] mov w0, wzr bfi w8, w21, #8, #24 str w8, [x20] str w19, [x25, :lo12:rkf_wf_get_lut.sftemp] -.LBB3_93: +.LBB3_79: ldp x20, x19, [sp, #96] ldp x22, x21, [sp, #80] ldp x24, x23, [sp, #64] @@ -906,23 +809,23 @@ rkf_wf_get_lut: ldr x30, [x18, #-8]! add sp, sp, #112 ret -.LBB3_94: +.LBB3_80: adrp x0, .L.str.3 add x0, x0, :lo12:.L.str.3 bl _printk mov w0, #-5 - b .LBB3_93 -.LBB3_95: + b .LBB3_79 +.LBB3_81: adrp x0, .L.str.4 add x0, x0, :lo12:.L.str.4 bl _printk mov w0, #-12 - b .LBB3_93 -.LBB3_96: + b .LBB3_79 +.LBB3_82: adrp x0, .L.str.11 add x0, x0, :lo12:.L.str.11 bl _printk - b .LBB3_81 + b .LBB3_65 .Lfunc_end3: .size rkf_wf_get_lut, .Lfunc_end3-rkf_wf_get_lut @@ -1555,6 +1458,69 @@ rkf_wf_normal_fix: .Lfunc_end6: .size rkf_wf_normal_fix, .Lfunc_end6-rkf_wf_normal_fix + .p2align 2 + .type rkf_wf_regal_fix,@function +rkf_wf_regal_fix: + cmp w1, #1 + b.lt .LBB7_3 + mov w9, w1 + mov x8, xzr + lsl x9, x9, #10 +.LBB7_2: + add x10, x0, w8, sxtw + add x8, x8, #1024 + cmp x9, x8 + ldrb w11, [x10, #30] + ldrb w12, [x10, #94] + strb w11, [x10, #31] + strb w11, [x10, #29] + ldrb w11, [x10, #158] + strb w12, [x10, #95] + strb w12, [x10, #93] + ldrb w12, [x10, #222] + strb w11, [x10, #159] + strb w11, [x10, #157] + ldrb w11, [x10, #286] + strb w12, [x10, #223] + strb w12, [x10, #221] + ldrb w12, [x10, #350] + strb w11, [x10, #287] + strb w11, [x10, #285] + ldrb w11, [x10, #414] + strb w12, [x10, #351] + strb w12, [x10, #349] + ldrb w12, [x10, #478] + strb w11, [x10, #415] + strb w11, [x10, #413] + ldrb w11, [x10, #542] + strb w12, [x10, #479] + strb w12, [x10, #477] + ldrb w12, [x10, #606] + strb w11, [x10, #543] + strb w11, [x10, #541] + ldrb w11, [x10, #670] + strb w12, [x10, #607] + strb w12, [x10, #605] + ldrb w12, [x10, #734] + strb w11, [x10, #671] + strb w11, [x10, #669] + ldrb w11, [x10, #798] + strb w12, [x10, #735] + strb w12, [x10, #733] + ldrb w12, [x10, #862] + strb w11, [x10, #799] + strb w11, [x10, #797] + ldrb w11, [x10, #926] + strb w12, [x10, #863] + strb w12, [x10, #861] + strb w11, [x10, #927] + strb w11, [x10, #925] + b.ne .LBB7_2 +.LBB7_3: + ret +.Lfunc_end7: + .size rkf_wf_regal_fix, .Lfunc_end7-rkf_wf_regal_fix + .type global_waveform,@object .local global_waveform .comm global_waveform,8,8 diff --git a/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.c b/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.c index 507e308048ac..16282e1e191a 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.c +++ b/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.c @@ -120,4 +120,15 @@ void ebc_regulator_verity_vcom(struct regulator *r) } } +//temp fix for customer +int overlay_temp_fix(int temp) +{ + return temp; +} + +int normal_temp_fix(int temp) +{ + return temp; +} + module_param(vcom, int, 0644); diff --git a/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.h b/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.h index 96e805e01e5e..6183e1b927ba 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.h +++ b/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.h @@ -56,6 +56,10 @@ static inline int ebc_pmic_get_vcom(struct ebc_pmic *pmic) return pmic->pmic_get_vcom(pmic); } +//temp fix for customer +int overlay_temp_fix(int temp); +int normal_temp_fix(int temp); + int ebc_pmic_set_vcom(struct ebc_pmic *pmic, int value); void ebc_pmic_verity_vcom(struct ebc_pmic *pmic); int ebc_regulator_set_vcom(struct regulator *r, int value);