Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ---------------------------------------------------------------------------
- ; enum grub_video_bitmap_scale_method (standard) (width 4 bytes)
- GRUB_VIDEO_BITMAP_SCALE_METHOD_FASTEST EQU 0
- GRUB_VIDEO_BITMAP_SCALE_METHOD_BEST EQU 1
- GRUB_VIDEO_BITMAP_SCALE_METHOD_NEAREST EQU 2
- GRUB_VIDEO_BITMAP_SCALE_METHOD_BILINEAR EQU 3
- ; ---------------------------------------------------------------------------
- ; enum grub_video_bitmap_selection_method_t (standard) (width 4 bytes)
- GRUB_VIDEO_BITMAP_SELECTION_METHOD_STRETCH EQU 0
- GRUB_VIDEO_BITMAP_SELECTION_METHOD_CROP EQU 1
- GRUB_VIDEO_BITMAP_SELECTION_METHOD_PADDING EQU 2
- GRUB_VIDEO_BITMAP_SELECTION_METHOD_FITWIDTH EQU 3
- GRUB_VIDEO_BITMAP_SELECTION_METHOD_FITHEIGHT EQU 4
- ; ---------------------------------------------------------------------------
- ; enum grub_video_bitmap_v_align_t (standard) (width 4 bytes)
- GRUB_VIDEO_BITMAP_V_ALIGN_TOP EQU 0
- GRUB_VIDEO_BITMAP_V_ALIGN_CENTER EQU 1
- GRUB_VIDEO_BITMAP_V_ALIGN_BOTTOM EQU 2
- ; ---------------------------------------------------------------------------
- ; enum grub_video_bitmap_h_align_t (standard) (width 4 bytes)
- GRUB_VIDEO_BITMAP_H_ALIGN_LEFT EQU 0
- GRUB_VIDEO_BITMAP_H_ALIGN_CENTER EQU 1
- GRUB_VIDEO_BITMAP_H_ALIGN_RIGHT EQU 2
- ; Input MD5 : 292D67757D33A86B556A93836318064E
- ; Input CRC32 : 6E85B640
- ; File Name : Z:\media\Data\repositories\git\bigG\out\target\common\grub\grub-core\video\bitmap_scale_module-bitmap_scale.o
- ; Format : ELF for ARM (Relocatable)
- ;
- ; EABI version: 5
- ;
- ; Source File : 'bitmap_scale.c'
- ; Processor : ARM
- ; ARM architecture: ARMv7-A
- ; Target assembler: Generic assembler for ARM
- ; Byte sex : Little endian
- ; ===========================================================================
- ; Segment type: Pure code
- AREA .text, CODE
- CODE16
- ; =============== S U B R O U T I N E =======================================
- ; Attributes: static
- ; grub_err_t __fastcall scale_nn(grub_video_bitmap *dst, grub_video_bitmap *src)
- scale_nn ; CODE XREF: grub_video_bitmap_create_scaled+B6p
- ; grub_video_bitmap_scale_proportional+192p
- var_84 = -0x84
- var_80 = -0x80
- var_7C = -0x7C
- ddata = -0x78
- sw = -0x74
- var_70 = -0x70
- var_6C = -0x6C
- var_68 = -0x68
- var_64 = -0x64
- var_60 = -0x60
- var_5C = -0x5C
- comp = -0x58
- var_54 = -0x54
- var_50 = -0x50
- var_4C = -0x4C
- var_48 = -0x48
- var_44 = -0x44
- var_40 = -0x40
- dh = -0x3C
- dy = -0x38
- sh = -0x34
- dstride = -0x30
- sstride = -0x2C
- dst = R0 ; grub_video_bitmap *
- src = R1 ; grub_video_bitmap *
- CMP src, #0
- IT NE
- CMPNE dst, #0
- PUSH.W {R4-R11,LR}
- MOV R4, dst
- SUB SP, SP, #0x64
- MOV R5, src
- BEQ.W loc_2C2
- LDR R7, [dst,#0x28]
- LSLS R2, R7, #0x1D
- BNE.W loc_290
- LDR.W R12, [dst,#0x30]
- TST.W R12, #7
- BNE.W loc_290
- LDR dst, [dst,#0x38]
- dst = R4 ; grub_video_bitmap *
- LSLS R3, R0, #0x1D
- BNE.W loc_290
- LDR R2, [dst,#0x40]
- LSLS R6, R2, #0x1D
- BNE.W loc_290
- LDR R6, [src,#0x28]
- LSLS src, R6, #0x1D
- src = R5 ; grub_video_bitmap *
- BNE.W loc_2AC
- LDR.W LR, [src,#0x30]
- TST.W LR, #7
- BNE.W loc_2AC
- LDR R1, [src,#0x38]
- LSLS R3, R1, #0x1D
- BNE.W loc_2AC
- LDR R3, [src,#0x40]
- TST.W R3, #7
- BNE.W loc_2AC
- CMP R7, R6
- BNE loc_70
- LDR R7, [dst,#0x24]
- LDR R6, [src,#0x24]
- CMP R12, LR
- IT EQ
- CMPEQ R7, R6
- BEQ.W loc_2D8
- loc_70 ; CODE XREF: scale_nn+60j
- ; scale_nn+2E2j ...
- MOVW R1, #:lower16:.LC3 ; "dst and src not compatible"
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC3 ; "dst and src not compatible"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- loc_84 ; CODE XREF: scale_nn+2A4j
- ; scale_nn+2C0j ...
- CMP R0, #0
- BNE.W loc_28A
- LDR R2, [dst,#0x4C]
- LDR R3, [dst,#4]
- LDR.W R9, [src,#0x4C]
- STR R2, [SP,#0x88+ddata]
- ddata = R2 ; grub_uint8_t *
- sdata = R9 ; grub_uint8_t *
- LDR ddata, [src]
- STR R3, [SP,#0x88+dh]
- LDR R7, [dst]
- dw = R7 ; unsigned int
- dh = R3 ; unsigned int
- STR R2, [SP,#0x88+sw]
- sw = R2 ; unsigned int
- LDR sw, [src,#4]
- LDR R6, [dst,#0x10]
- STR R2, [SP,#0x88+sh]
- sh = R2 ; unsigned int
- LDR sh, [src,#0x14]
- STR R2, [SP,#0x88+sstride]
- LDR R2, [dst,#0x14]
- STR R2, [SP,#0x88+dstride]
- dstride = R2 ; unsigned int
- bytes_per_pixel = R6 ; unsigned int
- CMP dh, #0
- BEQ.W loc_288
- loc_B0 ; CODE XREF: scale_nn+358j
- SUBS R3, bytes_per_pixel, #4
- SUBS R2, bytes_per_pixel, #1
- LSRS R3, R3, #2
- CMP R2, #2
- STR R2, [SP,#0x88+var_68]
- MOV.W R2, #0
- MOV R1, R2
- STR R2, [SP,#0x88+var_40]
- ADD.W R2, R3, #1
- SUB.W R3, R3, #8
- STR R2, [SP,#0x88+var_48]
- MOV.W R2, R2,LSL#2
- STR R3, [SP,#0x88+var_50]
- BIC.W R3, R3, #7
- STR R2, [SP,#0x88+var_4C]
- IT LS
- MOVLS R2, R1
- MOVW R0, #:lower16:__aeabi_uidiv
- ADD.W R8, R3, #8
- ADDS R3, R2, #1
- MOV src, R0
- STR R3, [SP,#0x88+var_5C]
- MOV R0, R3
- ADDS R3, R2, #2
- STR R2, [SP,#0x88+comp]
- MOV dst, R3
- STR R3, [SP,#0x88+var_84]
- LDR R3, [SP,#0x88+ddata]
- STR R1, [SP,#0x88+dy]
- ADDS R0, R3, R0
- ADDS R2, R3, R2
- STR R0, [SP,#0x88+var_64]
- ADDS R0, R3, R4
- STR R0, [SP,#0x88+var_60]
- MOV R0, R5
- MOVT.W R0, #:upper16:__aeabi_uidiv
- STR R2, [SP,#0x88+var_54]
- STR R0, [SP,#0x88+var_80]
- STR R3, [SP,#0x88+var_44]
- loc_10E ; CODE XREF: scale_nn+284j
- CMP dw, #0
- BEQ.W loc_26A
- LDR R3, [SP,#0x88+var_80]
- MOV.W R10, #0
- LDR R1, [SP,#0x88+dh]
- MOV R11, R10
- LDR R0, [SP,#0x88+var_40]
- BLX R3
- LDR R3, [SP,#0x88+sstride]
- LDR R5, [SP,#0x88+var_44]
- MUL.W R3, R3, R0
- STR R3, [SP,#0x88+var_7C]
- ADDS R3, #4
- STR R3, [SP,#0x88+var_70]
- B loc_1F4
- ; ---------------------------------------------------------------------------
- loc_132 ; CODE XREF: scale_nn+246j
- dx = R11 ; unsigned int
- LDR R2, [SP,#0x88+var_68]
- CMP R2, #2
- BLS loc_1C0
- LDR R2, [SP,#0x88+var_50]
- ADDS R2, #0xA
- BHI.W loc_2A6
- ADD.W R2, R3, #0x20
- ADD.W R4, R5, #0x20
- MOVS R0, #0
- STR R3, [SP,#0x88+var_6C]
- loc_14C ; CODE XREF: scale_nn+1A0j
- LDR.W R3, [R2,#-0x20]
- ADDS R0, #8
- PLD.W [R2,#0x54]
- CMP R0, R8
- MOV LR, R2
- MOV R1, R4
- STR.W R3, [R4,#-0x20]
- ADD.W R2, R2, #0x20
- LDR.W R3, [R2,#-0x3C]
- ADD.W R4, R4, #0x20
- STR.W R3, [R4,#-0x3C]
- LDR.W R3, [R2,#-0x38]
- STR.W R3, [R4,#-0x38]
- LDR.W R3, [R2,#-0x34]
- STR.W R3, [R4,#-0x34]
- LDR.W R3, [R2,#-0x30]
- STR.W R3, [R4,#-0x30]
- LDR.W R3, [R2,#-0x2C]
- STR.W R3, [R4,#-0x2C]
- LDR.W R3, [R2,#-0x28]
- STR.W R3, [R4,#-0x28]
- LDR.W R3, [R2,#-0x24]
- STR.W R3, [R4,#-0x24]
- BNE loc_14C
- LDR R3, [SP,#0x88+var_6C]
- MOV R2, R8
- loc_1A6 ; CODE XREF: scale_nn+2AAj
- LDR R4, [SP,#0x88+var_48]
- SUB.W LR, LR, #4
- loc_1AC ; CODE XREF: scale_nn+1B8j
- LDR.W R0, [LR,#4]!
- ADDS R2, #1
- CMP R2, R4
- STR.W R0, [R1],#4
- BCC loc_1AC
- LDR R2, [SP,#0x88+var_4C]
- CMP bytes_per_pixel, R2
- BEQ loc_1E6
- loc_1C0 ; CODE XREF: scale_nn+136j
- LDR R2, [SP,#0x88+comp]
- LDR R1, [SP,#0x88+var_54]
- LDRB R2, [R3,R2]
- STRB.W R2, [R1,R12]
- LDR R1, [SP,#0x88+var_5C]
- CMP R1, bytes_per_pixel
- BCS loc_1E6
- LDRB R2, [R3,R1]
- LDR R1, [SP,#0x88+var_64]
- STRB.W R2, [R1,R12]
- LDR R2, [SP,#0x88+var_84]
- CMP bytes_per_pixel, R2
- BLS loc_1E6
- LDRB R3, [R3,R2]
- LDR R2, [SP,#0x88+var_60]
- STRB.W R3, [R2,R12]
- loc_1E6 ; CODE XREF: scale_nn+1BEj
- ; scale_nn+1CEj ...
- ADD.W dx, dx, #1
- LDR R3, [SP,#0x88+sw]
- CMP dx, dw
- ADD R5, bytes_per_pixel
- ADD R10, R3
- BEQ loc_26A
- loc_1F4 ; CODE XREF: scale_nn+130j
- ; scale_nn+268j
- MOV R1, dw
- LDR R3, [SP,#0x88+var_80]
- MOV R0, R10
- BLX R3
- LDR R3, [SP,#0x88+ddata]
- MUL.W R0, bytes_per_pixel, R0
- RSB.W R12, R3, R5
- LDR R3, [SP,#0x88+var_7C]
- ADDS R1, R0, R3
- CMP bytes_per_pixel, #0
- BEQ loc_1E6
- LDR R3, [SP,#0x88+var_70]
- ADDS R2, R3, R0
- ADD.W R3, sdata, R1
- ADD.W R0, sdata, R2
- ADDS R2, R5, #4
- CMP R3, R2
- IT CC
- CMPCC R5, R0
- ORR.W R0, R3, R5
- ITE CS
- MOVCS R2, #1
- MOVCC R2, #0
- CMP bytes_per_pixel, #9
- ITE LS
- MOVLS R2, #0
- ANDHI.W R2, R2, #1
- TST.W R0, #3
- AND.W R2, R2, #1
- IT NE
- MOVNE R2, #0
- MOV LR, R3
- CMP R2, #0
- BNE.W loc_132
- ADD R1, bytes_per_pixel
- MOV R2, R5
- ADD R1, sdata
- loc_250 ; CODE XREF: scale_nn+25Aj
- LDRB.W R0, [R3],#1
- CMP R3, R1
- STRB.W R0, [R2],#1
- BNE loc_250
- ADD.W dx, dx, #1
- LDR R3, [SP,#0x88+sw]
- CMP dx, dw
- ADD R5, bytes_per_pixel
- ADD R10, R3
- BNE loc_1F4
- loc_26A ; CODE XREF: scale_nn+110j
- ; scale_nn+1F2j
- LDR R2, [SP,#0x88+var_44]
- LDR R1, [SP,#0x88+dstride]
- LDR R3, [SP,#0x88+dy]
- ADD R2, R1
- LDR R1, [SP,#0x88+sh]
- STR R2, [SP,#0x88+var_44]
- ADDS R3, #1
- LDR R2, [SP,#0x88+var_40]
- STR R3, [SP,#0x88+dy]
- ADD R2, R1
- STR R2, [SP,#0x88+var_40]
- LDR R2, [SP,#0x88+dh]
- CMP R3, R2
- BCC.W loc_10E
- loc_288 ; CODE XREF: scale_nn+ACj
- MOVS R0, #0
- loc_28A ; CODE XREF: scale_nn+86j
- ADD SP, SP, #0x64
- POP.W {R4-R11,PC}
- ; ---------------------------------------------------------------------------
- loc_290 ; CODE XREF: scale_nn+18j scale_nn+24j ...
- dst = R4 ; grub_video_bitmap * ; "dst format not supported"
- src = R1 ; grub_video_bitmap *
- MOVW src, #:lower16:.LC1
- src = R5 ; grub_video_bitmap *
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC1 ; "dst format not supported"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- B loc_84
- ; ---------------------------------------------------------------------------
- loc_2A6 ; CODE XREF: scale_nn+13Cj
- sdata = R9 ; grub_uint8_t *
- dw = R7 ; unsigned int
- bytes_per_pixel = R6 ; unsigned int
- dx = R11 ; unsigned int
- MOV R1, R5
- MOVS R2, #0
- B loc_1A6
- ; ---------------------------------------------------------------------------
- loc_2AC ; CODE XREF: scale_nn+3Cj scale_nn+48j ...
- dst = R4 ; grub_video_bitmap * ; "src format not supported"
- src = R5 ; grub_video_bitmap *
- MOVW R1, #:lower16:.LC2
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC2 ; "src format not supported"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- B loc_84
- ; ---------------------------------------------------------------------------
- loc_2C2 ; CODE XREF: scale_nn+10j
- dst = R0 ; grub_video_bitmap * ; "null bitmap in scale function"
- src = R1 ; grub_video_bitmap *
- MOVW src, #:lower16:.LC0
- src = R5 ; grub_video_bitmap *
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC0 ; "null bitmap in scale function"
- MOVT.W R3, #:upper16:grub_error
- MOVS dst, #0x26 ; '&'
- dst = R4 ; grub_video_bitmap *
- BLX R3 ; grub_error
- B loc_84
- ; ---------------------------------------------------------------------------
- loc_2D8 ; CODE XREF: scale_nn+6Cj
- LDR R7, [dst,#0x2C]
- LDR R6, [src,#0x2C]
- CMP R0, R1
- IT EQ
- CMPEQ R7, R6
- BNE.W loc_70
- LDR R0, [dst,#0x34]
- LDR R1, [src,#0x34]
- CMP R2, R3
- IT EQ
- CMPEQ R0, R1
- BNE.W loc_70
- LDR R2, [dst,#0x3C]
- LDR R3, [src,#0x3C]
- CMP R2, R3
- BNE.W loc_70
- LDR R6, [dst,#0x10]
- LDR R3, [src,#0x10]
- CMP R6, R3
- BNE loc_332
- LDR R7, [dst]
- CBZ R7, loc_31C
- LDR R3, [dst,#4]
- STR R3, [SP,#0x88+dh]
- CBZ R3, loc_31C
- LDR R3, [src]
- STR R3, [SP,#0x88+sw]
- CBZ R3, loc_31C
- LDR R3, [src,#4]
- STR R3, [SP,#0x88+sh]
- CBNZ R3, loc_348
- loc_31C ; CODE XREF: scale_nn+308j
- ; scale_nn+30Ej ...
- MOVW R1, #:lower16:.LC4 ; "bitmap has a zero dimension"
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC4 ; "bitmap has a zero dimension"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- B loc_84
- ; ---------------------------------------------------------------------------
- loc_332 ; CODE XREF: scale_nn+304j
- MOVW R1, #:lower16:.LC3 ; "dst and src not compatible"
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC3 ; "dst and src not compatible"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x18
- BLX R3 ; grub_error
- B loc_84
- ; ---------------------------------------------------------------------------
- loc_348 ; CODE XREF: scale_nn+31Aj
- LDR R3, [dst,#0x4C]
- LDR.W R9, [src,#0x4C]
- STR R3, [SP,#0x88+ddata]
- sdata = R9 ; grub_uint8_t *
- dw = R7 ; unsigned int
- LDR R3, [dst,#0x14]
- STR R3, [SP,#0x88+dstride]
- LDR R3, [src,#0x14]
- STR R3, [SP,#0x88+sstride]
- bytes_per_pixel = R6 ; unsigned int
- B loc_B0
- ; End of function scale_nn
- ; ---------------------------------------------------------------------------
- ALIGN 4
- ; =============== S U B R O U T I N E =======================================
- ; grub_err_t __fastcall grub_video_bitmap_create_scaled(grub_video_bitmap **dst, int dst_width, int dst_height, grub_video_bitmap *src, grub_video_bitmap_scale_method scale_method)
- EXPORT grub_video_bitmap_create_scaled
- grub_video_bitmap_create_scaled
- scale_method = 0
- dst = R0 ; grub_video_bitmap **
- dst_width = R1 ; int
- dst_height = R2 ; int
- src = R3 ; grub_video_bitmap *
- PUSH.W {R4-R8,LR}
- MOV R6, dst
- MOVS dst, #0
- dst = R6 ; grub_video_bitmap **
- MOV R7, dst_width
- MOV R8, dst_height
- MOV R4, src
- STR R0, [dst]
- CMP src, #0
- BEQ loc_444
- LDR src, [src,#0x28]
- src = R4 ; grub_video_bitmap *
- LSLS R0, R3, #0x1D
- BNE loc_3DE
- LDR R3, [src,#0x30]
- LSLS dst_width, R3, #0x1D
- dst_width = R7 ; int
- BNE loc_3DE
- LDR R3, [src,#0x38]
- LSLS dst_height, R3, #0x1D
- dst_height = R8 ; int
- BNE loc_3DE
- LDR R3, [src,#0x40]
- LSLS R3, R3, #0x1D
- BNE loc_3DE
- LDR R3, [src]
- CMP R3, #0
- BEQ loc_42C
- LDR R3, [src,#4]
- CMP R3, #0
- BEQ loc_42C
- LDR R2, [src,#0x10]
- LDR R3, [src,#0xC]
- CMP.W R3, R2,LSL#3
- BEQ loc_3B6
- MOVW R1, #:lower16:.LC8 ; "bitmap to scale has inconsistent Bpp an"...
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC8 ; "bitmap to scale has inconsistent Bpp an"...
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- MOV R5, R0
- loc_3B4 ; CODE XREF: grub_video_bitmap_create_scaled+98j
- ; grub_video_bitmap_create_scaled+E6j ...
- CBNZ R5, loc_3D8
- loc_3B6 ; CODE XREF: grub_video_bitmap_create_scaled+40j
- CMP.W dst_height, #0
- IT GT
- CMPGT dst_width, #0
- BLE loc_3F6
- MOVW R5, #:lower16:grub_video_bitmap_create
- MOV R1, dst_width
- MOVT.W R5, #:upper16:grub_video_bitmap_create
- MOV R2, dst_height
- LDR R3, [src,#0x20]
- MOV R0, dst
- BLX R5 ; grub_video_bitmap_create
- ret = R0 ; grub_err_t
- MOV dst_width, ret
- MOV R5, ret
- CBZ ret, loc_40E
- loc_3D8 ; CODE XREF: grub_video_bitmap_create_scaled:loc_3B4j
- ; grub_video_bitmap_create_scaled+BEj ...
- MOV R0, R5
- POP.W {src-dst_height,PC}
- ; ---------------------------------------------------------------------------
- loc_3DE ; CODE XREF: grub_video_bitmap_create_scaled+18j
- ; grub_video_bitmap_create_scaled+1Ej ...
- dst_width = R7 ; int ; "src format not supported for scale"
- MOVW R1, #:lower16:.LC6
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC6 ; "src format not supported for scale"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- MOV R5, R0
- B loc_3B4
- ; ---------------------------------------------------------------------------
- loc_3F6 ; CODE XREF: grub_video_bitmap_create_scaled+62j
- MOVW R1, #:lower16:.LC9 ; "requested to scale to a size w/ a zero "...
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC9 ; "requested to scale to a size w/ a zero "...
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- POP.W {src-dst_height,LR}
- BX R3 ; grub_error
- ; ---------------------------------------------------------------------------
- loc_40E ; CODE XREF: grub_video_bitmap_create_scaled+7Aj
- dst = R6 ; grub_video_bitmap ** ; src
- dst_height = R8 ; int
- src = R4 ; grub_video_bitmap *
- ret = R0 ; grub_err_t
- MOV R1, src
- LDR ret, [dst] ; dst
- ret = R5 ; grub_err_t
- BL scale_nn
- MOV R5, R0
- CMP R0, #0
- BEQ loc_3D8
- MOVW R3, #:lower16:grub_video_bitmap_destroy
- LDR R0, [dst]
- MOVT.W R3, #:upper16:grub_video_bitmap_destroy
- BLX R3 ; grub_video_bitmap_destroy
- STR R7, [dst]
- B loc_3D8
- ; ---------------------------------------------------------------------------
- loc_42C ; CODE XREF: grub_video_bitmap_create_scaled+30j
- ; grub_video_bitmap_create_scaled+36j
- dst_width = R7 ; int ; "source bitmap has a zero dimension"
- MOVW R1, #:lower16:.LC7
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC7 ; "source bitmap has a zero dimension"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- MOV R5, R0
- B loc_3B4
- ; ---------------------------------------------------------------------------
- loc_444 ; CODE XREF: grub_video_bitmap_create_scaled+12j
- dst_width = R1 ; int ; "null src bitmap in grub_video_bitmap_cr"...
- dst_height = R2 ; int
- src = R3 ; grub_video_bitmap *
- MOVW dst_width, #:lower16:.LC5
- dst_width = R7 ; int
- MOVW src, #:lower16:grub_error
- src = R4 ; grub_video_bitmap *
- MOVT.W R1, #:upper16:.LC5 ; "null src bitmap in grub_video_bitmap_cr"...
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- MOV R5, R0
- B loc_3B4
- ; End of function grub_video_bitmap_create_scaled
- ; =============== S U B R O U T I N E =======================================
- ; grub_err_t __fastcall grub_video_bitmap_scale_proportional(grub_video_bitmap **dst, int dst_width, int dst_height, grub_video_bitmap *src, grub_video_bitmap_scale_method scale_method, grub_video_bitmap_selection_method_t selection_method, grub_video_bitmap_v_align_t v_align, grub_video_bitmap_h_align_t h_align)
- EXPORT grub_video_bitmap_scale_proportional
- grub_video_bitmap_scale_proportional
- dw = -0x3C
- dh = -0x38
- src_height_orig = -0x34
- dst_height_orig = -0x30
- var_2C = -0x2C
- scale_method = 0
- selection_method= 4
- v_align = 8
- h_align = 0xC
- dst = R0 ; grub_video_bitmap **
- dst_width = R1 ; int
- dst_height = R2 ; int
- src = R3 ; grub_video_bitmap *
- PUSH.W {R4-R11,LR}
- MOV R6, dst
- SUB SP, SP, #0x1C
- MOVS dst, #0
- dst = R6 ; grub_video_bitmap **
- MOV R5, dst_width
- MOV R7, dst_height
- STR R0, [dst]
- MOV R4, src
- LDR.W R8, [SP,#0x40+selection_method]
- LDR.W R10, [SP,#0x40+v_align]
- LDR.W R9, [SP,#0x40+h_align]
- CMP src, #0
- BEQ.W loc_724
- LDR src, [src,#0x28]
- src = R4 ; grub_video_bitmap *
- LSLS R0, R3, #0x1D
- BNE loc_502
- LDR R3, [src,#0x30]
- LSLS dst_width, R3, #0x1D
- BNE loc_502
- LDR R3, [src,#0x38]
- LSLS dst_height, R3, #0x1D
- BNE loc_502
- LDR R3, [src,#0x40]
- LSLS R3, R3, #0x1D
- BNE loc_502
- LDR R3, [src]
- CMP R3, #0
- BEQ loc_53A
- LDR R3, [src,#4]
- CMP R3, #0
- BEQ loc_53A
- LDR R2, [src,#0x10]
- LDR R3, [src,#0xC]
- CMP.W R3, R2,LSL#3
- BEQ loc_4C4
- MOVW R1, #:lower16:.LC8 ; "bitmap to scale has inconsistent Bpp an"...
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC8 ; "bitmap to scale has inconsistent Bpp an"...
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- loc_4C2 ; CODE XREF: grub_video_bitmap_scale_proportional+F2j
- ; grub_video_bitmap_scale_proportional+2DCj
- CBNZ R0, loc_51A
- loc_4C4 ; CODE XREF: grub_video_bitmap_scale_proportional+50j
- ; grub_video_bitmap_scale_proportional+BCj
- CMP R7, #0
- IT GT
- CMPGT R5, #0
- BLE loc_520
- MOVW R12, #:lower16:grub_video_bitmap_create
- LDR R3, [src,#0x20]
- MOVT.W R12, #:upper16:grub_video_bitmap_create
- MOV R2, R7
- MOV R1, R5
- MOV R0, dst
- BLX R12 ; grub_video_bitmap_create
- ret = R0 ; grub_err_t
- STR R5, [SP,#0x40+dw]
- STR R7, [SP,#0x40+dh]
- CBNZ ret, loc_51A
- dw = R5 ; unsigned int
- dh = R7 ; unsigned int
- ADD.W R1, R8, #0xFFFFFFFF
- LDR.W R11, [src]
- sw = R11 ; unsigned int
- LDR.W R8, [src,#4]
- sh = R8 ; unsigned int
- CMP R1, #3 ; switch 4 cases
- BHI.W loc_6C6 ; jumptable 000004F6 default case
- TBH.W [PC,R1,LSL#1] ; switch jump
- ; ---------------------------------------------------------------------------
- jpt_4F6 DCW 0x95 ; jump table for switch statement
- DCW 0xB6
- DCW 0xDC
- DCW 0x2B
- ; ---------------------------------------------------------------------------
- loc_502 ; CODE XREF: grub_video_bitmap_scale_proportional+28j
- ; grub_video_bitmap_scale_proportional+2Ej ...
- MOVW R1, #:lower16:.LC6 ; "src format not supported for scale"
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC6 ; "src format not supported for scale"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- CMP R0, #0
- BEQ loc_4C4
- loc_51A ; CODE XREF: grub_video_bitmap_scale_proportional:loc_4C2j
- ; grub_video_bitmap_scale_proportional+86j ...
- ADD SP, SP, #0x1C
- POP.W {src-R11,PC}
- ; ---------------------------------------------------------------------------
- loc_520 ; CODE XREF: grub_video_bitmap_scale_proportional+6Ej
- dst_width = R5 ; int ; "requested to scale to a size w/ a zero "...
- dst_height = R7 ; int
- MOVW R1, #:lower16:.LC9
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC9 ; "requested to scale to a size w/ a zero "...
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- ADD SP, SP, #0x1C
- POP.W {src-R11,LR}
- BX R3 ; grub_error
- ; ---------------------------------------------------------------------------
- loc_53A ; CODE XREF: grub_video_bitmap_scale_proportional+40j
- ; grub_video_bitmap_scale_proportional+46j
- dst = R6 ; grub_video_bitmap ** ; "source bitmap has a zero dimension"
- src = R4 ; grub_video_bitmap *
- MOVW R1, #:lower16:.LC7
- MOVW R3, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC7 ; "source bitmap has a zero dimension"
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- B loc_4C2
- ; ---------------------------------------------------------------------------
- loc_550 ; CODE XREF: grub_video_bitmap_scale_proportional+9Aj
- ret = R0 ; grub_err_t ; jumptable 000004F6 case 3
- dw = R5 ; unsigned int
- dh = R7 ; unsigned int
- sw = R11 ; unsigned int
- sh = R8 ; unsigned int
- MUL.W R1, sw, dh
- MUL.W ret, sh, dw
- CMP R1, R0
- BCS.W loc_6F4
- MOVW R3, #:lower16:__aeabi_uidiv
- MOV R0, R1
- loc_564 ; CODE XREF: grub_video_bitmap_scale_proportional+21Aj
- MOVT.W R3, #:upper16:__aeabi_uidiv
- MOV R1, sh
- BLX R3 ; __aeabi_uidiv
- CMP dw, R0
- MOV R3, R0
- BLS.W loc_75A
- CMP.W R9, #1
- BEQ.W loc_7B8
- BCC.W loc_75A
- CMP.W R9, #2
- BNE.W loc_79E
- MOV.W LR, #0
- RSB.W R9, R0, dw
- loc_590 ; CODE XREF: grub_video_bitmap_scale_proportional+366j
- dx0 = R9 ; unsigned int
- STR R3, [SP,#0x40+dw]
- MOV R12, LR
- MOV R3, LR
- MOV R5, sh
- MOV R10, sw
- loc_59A ; CODE XREF: grub_video_bitmap_scale_proportional+208j
- ; grub_video_bitmap_scale_proportional+254j ...
- dy0 = R3 ; unsigned int
- sx0 = R12 ; unsigned int
- sy0 = R14 ; unsigned int
- sw = R10 ; unsigned int
- sh = R5 ; unsigned int
- MOV R7, R11
- STR.W R8, [SP,#0x40+src_height_orig]
- loc_5A0 ; CODE XREF: grub_video_bitmap_scale_proportional+296j
- src_width_orig = R7 ; int
- LDR R2, [src,#0x10]
- MOV R1, src ; src
- LDR R0, [dst]
- LDR.W R8, [src,#0x4C]
- MUL.W sx0, R2, sx0
- src_data_orig = R8 ; grub_uint8_t *
- LDR.W R11, [R0]
- dst_width_orig = R11 ; int
- MUL.W R2, R2, dx0
- LDR.W dx0, [R0,#0x4C]
- dst_data_orig = R9 ; grub_uint8_t *
- STR R2, [SP,#0x40+var_2C]
- LDR R2, [src,#0x14]
- MLA.W R12, R2, LR, R12
- LDR R2, [R0,#4]
- LDR.W LR, [R0,#0x14]
- dstride = R14 ; int
- STR.W sw, [src]
- STR R2, [SP,#0x40+dst_height_orig]
- LDR R2, [SP,#0x40+var_2C]
- ADD.W R0, src_data_orig, R12
- STR R0, [src,#0x4C]
- MLA.W LR, LR, dy0, R2
- LDR dy0, [dst]
- STR sh, [src,#4]
- LDR sh, [SP,#0x40+dw]
- LDR R0, [R3,#0x4C]
- STR R5, [R3]
- LDR R5, [SP,#0x40+dh]
- ADD R0, LR
- STR R0, [R3,#0x4C]
- LDR R0, [dst] ; dst
- STR R5, [R3,#4]
- BL scale_nn
- STR.W src_data_orig, [src,#0x4C]
- MOV R5, R0
- LDR R3, [dst]
- LDR R1, [SP,#0x40+src_height_orig]
- LDR R2, [SP,#0x40+dst_height_orig]
- STR src_width_orig, [src]
- STR R1, [src,#4]
- STR.W dst_width_orig, [R3]
- STR R2, [R3,#4]
- STR.W dst_data_orig, [R3,#0x4C]
- ret = R0 ; grub_err_t
- CMP R5, #0
- BEQ loc_51A
- loc_610 ; CODE XREF: grub_video_bitmap_scale_proportional+282j
- ret = R5 ; grub_err_t
- MOVW R3, #:lower16:grub_video_bitmap_destroy
- LDR R0, [dst]
- MOVT.W R3, #:upper16:grub_video_bitmap_destroy
- BLX R3 ; grub_video_bitmap_destroy
- MOVS R3, #0
- MOV R0, ret
- STR R3, [dst]
- B loc_51A
- ; ---------------------------------------------------------------------------
- loc_624 ; CODE XREF: grub_video_bitmap_scale_proportional+9Aj
- dst_height = R7 ; int ; jumptable 000004F6 case 0
- ret = R0 ; grub_err_t
- sw = R11 ; unsigned int
- sh = R8 ; unsigned int
- MUL.W LR, sw, dst_height
- MUL.W ret, sh, R5
- CMP LR, R0
- BCS loc_6F4
- MOVW dst_height, #:lower16:__aeabi_uidiv
- MOV R1, R5
- MOV R0, LR
- loc_638 ; CODE XREF: grub_video_bitmap_scale_proportional+268j
- MOVT.W R7, #:upper16:__aeabi_uidiv
- BLX R7 ; __aeabi_uidiv
- CMP sh, R0
- MOV R5, R0
- BLS loc_73A
- CMP.W R10, #1
- BEQ.W loc_7C4
- BCC loc_73A
- CMP.W R10, #2
- BNE.W loc_7E2
- MOV.W R12, #0
- RSB.W LR, R0, sh
- sy0 = R14 ; unsigned int
- MOV R3, R12
- MOV R9, R12
- MOV R10, sw
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_666 ; CODE XREF: grub_video_bitmap_scale_proportional+9Aj
- ret = R0 ; grub_err_t ; jumptable 000004F6 case 1
- MUL.W ret, sw, R7
- MUL.W R1, sh, R5
- CMP R0, R1
- IT CC
- MOVCCW R3, #:lower16:__aeabi_uidiv
- BCC.W loc_564
- loc_67A ; CODE XREF: grub_video_bitmap_scale_proportional+260j
- MOVW R2, #:lower16:__aeabi_uidiv
- MOV R0, R1
- MOVT.W R2, #:upper16:__aeabi_uidiv
- MOV R1, sw
- BLX R2 ; __aeabi_uidiv
- CMP R7, R0
- MOV R2, R0
- BLS loc_748
- CMP.W R10, #1
- BEQ.W loc_7D8
- BCC loc_748
- CMP.W R10, #2
- BNE.W loc_7FC
- MOV.W LR, #0
- SUBS R3, R7, R0
- loc_6A6 ; CODE XREF: grub_video_bitmap_scale_proportional+384j
- dy0 = R3 ; unsigned int
- STR R2, [SP,#0x40+dh]
- MOV R12, LR
- MOV R9, LR
- MOV R5, sh
- MOV R10, sw
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_6B2 ; CODE XREF: grub_video_bitmap_scale_proportional+9Aj
- ret = R0 ; grub_err_t ; jumptable 000004F6 case 2
- MUL.W ret, sw, R7
- MUL.W R1, sh, R5
- CMP R0, R1
- BCS loc_67A
- MOVW R7, #:lower16:__aeabi_uidiv
- MOV R1, R5
- B loc_638
- ; ---------------------------------------------------------------------------
- loc_6C6 ; CODE XREF: grub_video_bitmap_scale_proportional+96j
- ret = R0 ; grub_err_t ; jumptable 000004F6 default case
- MOVW R1, #:lower16:.LC12
- MOV R5, #grub_error
- MOVT.W R1, #:upper16:.LC12 ; "Invalid selection_method value"
- MOVS ret, #0x26 ; '&'
- BLX R5 ; grub_error
- MOV R5, R0
- loc_6DC ; CODE XREF: grub_video_bitmap_scale_proportional+32Cj
- ; grub_video_bitmap_scale_proportional+35Aj ...
- ret = R5 ; grub_err_t
- CMP ret, #0
- BNE loc_610
- LDR R2, [src,#4]
- MOV R3, ret
- LDR R7, [src]
- MOV R10, sw
- MOV ret, sh
- ret = R3 ; grub_err_t
- MOV R12, ret
- STR R2, [SP,#0x40+src_height_orig]
- MOV LR, ret
- MOV R9, ret
- B loc_5A0
- ; ---------------------------------------------------------------------------
- loc_6F4 ; CODE XREF: grub_video_bitmap_scale_proportional+FEj
- ; grub_video_bitmap_scale_proportional+1D2j
- MOVW R5, #:lower16:__aeabi_uidiv
- MOV R1, R7
- MOVT.W R5, #:upper16:__aeabi_uidiv
- BLX R5 ; __aeabi_uidiv
- CMP sw, R0
- MOV R10, R0
- BLS loc_762
- CMP.W R9, #1
- BEQ loc_78A
- BCC loc_762
- CMP.W R9, #2
- BNE loc_770
- MOV.W LR, #0
- RSB.W R12, R0, sw
- sx0 = R12 ; unsigned int
- MOV R3, LR
- MOV R9, LR
- MOV R5, sh
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_724 ; CODE XREF: grub_video_bitmap_scale_proportional+20j
- src = R3 ; grub_video_bitmap * ; "null src bitmap in grub_video_bitmap_cr"...
- MOVW R1, #:lower16:.LC5
- MOVW src, #:lower16:grub_error
- src = R4 ; grub_video_bitmap *
- MOVT.W R1, #:upper16:.LC5 ; "null src bitmap in grub_video_bitmap_cr"...
- MOVT.W R3, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- BLX R3 ; grub_error
- B loc_4C2
- ; ---------------------------------------------------------------------------
- loc_73A ; CODE XREF: grub_video_bitmap_scale_proportional+1E6j
- ; grub_video_bitmap_scale_proportional+1F0j
- sw = R11 ; unsigned int
- sh = R8 ; unsigned int
- MOV.W LR, #0
- MOV R10, sw
- MOV R12, LR
- MOV R3, LR
- MOV R9, LR
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_748 ; CODE XREF: grub_video_bitmap_scale_proportional+230j
- ; grub_video_bitmap_scale_proportional+23Aj
- MOV.W LR, #0
- STR R2, [SP,#0x40+dh]
- loc_74E ; CODE XREF: grub_video_bitmap_scale_proportional+304j
- MOV R12, LR
- MOV R3, LR
- MOV R9, LR
- MOV R5, sh
- MOV R10, sw
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_75A ; CODE XREF: grub_video_bitmap_scale_proportional+114j
- ; grub_video_bitmap_scale_proportional+120j
- MOV.W LR, #0
- STR R3, [SP,#0x40+dw]
- B loc_74E
- ; ---------------------------------------------------------------------------
- loc_762 ; CODE XREF: grub_video_bitmap_scale_proportional+2A8j
- ; grub_video_bitmap_scale_proportional+2B0j
- MOV.W LR, #0
- MOV R5, sh
- MOV R12, LR
- MOV R3, LR
- MOV R9, LR
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_770 ; CODE XREF: grub_video_bitmap_scale_proportional+2B6j
- MOVW R1, #:lower16:.LC11 ; "Invalid h_align value"
- MOV R5, #grub_error
- MOVT.W R1, #:upper16:.LC11 ; "Invalid h_align value"
- MOVS R0, #0x26 ; '&'
- MOV sw, R10
- BLX R5 ; grub_error
- MOV R5, R0
- B loc_6DC
- ; ---------------------------------------------------------------------------
- loc_78A ; CODE XREF: grub_video_bitmap_scale_proportional+2AEj
- sw = R11 ; unsigned int
- MOV.W LR, #0
- RSB.W R12, R0, sw
- MOV.W R12, R12,LSR#1
- sx0 = R12 ; unsigned int
- MOV R3, LR
- MOV R9, LR
- MOV R5, sh
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_79E ; CODE XREF: grub_video_bitmap_scale_proportional+128j
- MOVW R1, #:lower16:.LC11 ; "Invalid h_align value"
- MOV R5, #grub_error
- MOVT.W R1, #:upper16:.LC11 ; "Invalid h_align value"
- MOVS R0, #0x26 ; '&'
- STR R3, [SP,#0x40+dw]
- BLX R5 ; grub_error
- MOV R5, R0
- B loc_6DC
- ; ---------------------------------------------------------------------------
- loc_7B8 ; CODE XREF: grub_video_bitmap_scale_proportional+11Cj
- SUBS R5, R5, R0
- MOV.W LR, #0
- MOV.W R9, R5,LSR#1
- B loc_590
- ; ---------------------------------------------------------------------------
- loc_7C4 ; CODE XREF: grub_video_bitmap_scale_proportional+1ECj
- MOV.W R12, #0
- RSB.W LR, R0, sh
- MOV.W LR, LR,LSR#1
- sy0 = R14 ; unsigned int
- MOV R3, R12
- MOV R9, R12
- MOV R10, sw
- B loc_59A
- ; ---------------------------------------------------------------------------
- loc_7D8 ; CODE XREF: grub_video_bitmap_scale_proportional+236j
- SUBS R7, R7, R0
- MOV.W LR, #0
- LSRS R3, R7, #1
- B loc_6A6
- ; ---------------------------------------------------------------------------
- loc_7E2 ; CODE XREF: grub_video_bitmap_scale_proportional+1F6j
- MOVW R1, #:lower16:.LC10 ; "Invalid v_align value"
- MOVW R7, #:lower16:grub_error
- MOVT.W R1, #:upper16:.LC10 ; "Invalid v_align value"
- MOVT.W R7, #:upper16:grub_error
- MOVS R0, #0x26 ; '&'
- MOV sh, R5
- BLX R7 ; grub_error
- MOV R5, R0
- B loc_6DC
- ; ---------------------------------------------------------------------------
- loc_7FC ; CODE XREF: grub_video_bitmap_scale_proportional+240j
- sh = R8 ; unsigned int ; "Invalid v_align value"
- MOVW R1, #:lower16:.LC10
- MOV R5, #grub_error
- MOVT.W R1, #:upper16:.LC10 ; "Invalid v_align value"
- MOVS R0, #0x26 ; '&'
- STR R2, [SP,#0x40+dh]
- BLX R5 ; grub_error
- MOV R5, R0
- B loc_6DC
- ; End of function grub_video_bitmap_scale_proportional
- ; ---------------------------------------------------------------------------
- ALIGN 4
- ; .text ends
- ; ===========================================================================
- ; Segment type: Zero-length
- AREA .data, DATA, ALIGN=0
- ; ORG 0x818
- ; .data ends
- ; ===========================================================================
- ; Segment type: Zero-length
- AREA .bss, DATA, ALIGN=0
- ; ORG 0x819
- ; .bss ends
- ; ===========================================================================
- ; Segment type: Pure data
- AREA .module_license, DATA
- ; ORG 0x81C
- ; unsigned __int8 grub_module_license[15]
- grub_module_license DCB 0x4C, 0x49, 0x43, 0x45, 0x4E, 0x53, 0x45, 0x3D, 0x47
- DCB 0x50, 0x4C, 0x76, 0x33, 0x2B, 0
- ALIGN 4
- ; .module_license ends
- ; ===========================================================================
- ; Segment type: Pure data
- AREA .rodata.str1.4, DATA, READONLY
- ; ORG 0x82C
- .LC0 DCB "null bitmap in scale function",0 ; DATA XREF: scale_nn:loc_2C2o
- ; scale_nn+2CAo
- ALIGN 4
- .LC1 DCB "dst format not supported",0 ; DATA XREF: scale_nn:loc_290o
- ; scale_nn+298o
- ALIGN 4
- .LC2 DCB "src format not supported",0 ; DATA XREF: scale_nn:loc_2ACo
- ; scale_nn+2B4o
- ALIGN 4
- .LC3 DCB "dst and src not compatible",0 ; DATA XREF: scale_nn:loc_70o
- ; scale_nn+78o ...
- ALIGN 0x10
- .LC4 DCB "bitmap has a zero dimension",0 ; DATA XREF: scale_nn:loc_31Co
- ; scale_nn+324o
- .LC5 DCB "null src bitmap in grub_video_bitmap_create_scaled",0
- ; DATA XREF: grub_video_bitmap_create_scaled:loc_444o
- ; grub_video_bitmap_create_scaled+F0o ...
- ALIGN 0x10
- .LC6 DCB "src format not supported for scale",0
- ; DATA XREF: grub_video_bitmap_create_scaled:loc_3DEo
- ; grub_video_bitmap_create_scaled+8Ao ...
- ALIGN 4
- .LC7 DCB "source bitmap has a zero dimension",0
- ; DATA XREF: grub_video_bitmap_create_scaled:loc_42Co
- ; grub_video_bitmap_create_scaled+D8o ...
- ALIGN 4
- .LC8 DCB "bitmap to scale has inconsistent Bpp and bpp",0
- ; DATA XREF: grub_video_bitmap_create_scaled+42o
- ; grub_video_bitmap_create_scaled+4Ao ...
- ALIGN 4
- .LC9 DCB "requested to scale to a size w/ a zero dimension",0
- ; DATA XREF: grub_video_bitmap_create_scaled:loc_3F6o
- ; grub_video_bitmap_create_scaled+A2o ...
- ALIGN 4
- .LC10 DCB "Invalid v_align value",0
- ; DATA XREF: grub_video_bitmap_scale_proportional:loc_7E2o
- ; grub_video_bitmap_scale_proportional+38Eo ...
- ALIGN 4
- .LC11 DCB "Invalid h_align value",0
- ; DATA XREF: grub_video_bitmap_scale_proportional:loc_770o
- ; grub_video_bitmap_scale_proportional+320o ...
- ALIGN 4
- .LC12 DCB "Invalid selection_method value",0
- ; DATA XREF: grub_video_bitmap_scale_proportional:loc_6C6o
- ; grub_video_bitmap_scale_proportional+276o
- ALIGN 4
- ; .rodata.str1.4 ends
- ; ===========================================================================
- ; Segment type: Externs
- IMPORT __aeabi_uidiv ; CODE XREF: grub_video_bitmap_scale_proportional+10Ep
- ; grub_video_bitmap_scale_proportional+1E0p ...
- IMPORT grub_error ; CODE XREF: scale_nn+82p
- ; scale_nn+2A2p ...
- IMPORT grub_video_bitmap_create
- ; CODE XREF: grub_video_bitmap_create_scaled+74p
- ; grub_video_bitmap_scale_proportional+80p
- ; DATA XREF: ...
- IMPORT grub_video_bitmap_destroy
- ; CODE XREF: grub_video_bitmap_create_scaled+CAp
- ; grub_video_bitmap_scale_proportional+1BEp
- ; DATA XREF: ...
- END
Advertisement
Add Comment
Please, Sign In to add comment