mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
83 lines
1.7 KiB
NASM
83 lines
1.7 KiB
NASM
INCLUDE kxarm.h
|
|
|
|
area js_msvc, code, readonly
|
|
|
|
MACRO
|
|
FUNC_HEADER $Name
|
|
FuncName SETS VBar:CC:"$Name":CC:VBar
|
|
PrologName SETS VBar:CC:"$Name":CC:"_Prolog":CC:VBar
|
|
FuncEndName SETS VBar:CC:"$Name":CC:"_end":CC:VBar
|
|
|
|
AREA |.pdata|,ALIGN=2,PDATA
|
|
DCD $FuncName
|
|
DCD (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000
|
|
AREA $AreaName,CODE,READONLY
|
|
ALIGN 2
|
|
GLOBAL $FuncName
|
|
EXPORT $FuncName
|
|
$FuncName
|
|
ROUT
|
|
$PrologName
|
|
MEND
|
|
|
|
;; -------- Functions to test processor features.
|
|
export js_arm_try_thumb_op
|
|
export js_arm_try_armv6t2_op
|
|
export js_arm_try_armv7_op
|
|
export js_arm_try_armv6_op
|
|
export js_arm_try_armv5_op
|
|
export js_arm_try_vfp_op
|
|
|
|
;; Test for Thumb support.
|
|
FUNC_HEADER js_arm_try_thumb_op
|
|
bx lr
|
|
mov pc, lr
|
|
ENTRY_END
|
|
endp
|
|
|
|
;; I'm not smart enough to figure out which flags to pass to armasm to get it
|
|
;; to understand movt and fmdrr/vmov; the disassembler figures them out just fine!
|
|
|
|
;; Test for Thumb2 support.
|
|
FUNC_HEADER js_arm_try_armv6t2_op
|
|
;; movt r0,#0xFFFF
|
|
DCD 0xE34F0FFF
|
|
mov pc,lr
|
|
ENTRY_END
|
|
endp
|
|
|
|
;; Test for VFP support.
|
|
FUNC_HEADER js_arm_try_vfp_op
|
|
;; fmdrr d0, r0, r1
|
|
DCD 0xEC410B10
|
|
mov pc,lr
|
|
ENTRY_END
|
|
endp
|
|
|
|
;; Tests for each architecture version.
|
|
|
|
FUNC_HEADER js_arm_try_armv7_op
|
|
;; pli pc, #0
|
|
DCD 0xF45FF000
|
|
mov pc, lr
|
|
ENTRY_END
|
|
endp
|
|
|
|
FUNC_HEADER js_arm_try_armv6_op
|
|
;; rev ip, ip
|
|
DCD 0xE6BFCF3C
|
|
mov pc, lr
|
|
ENTRY_END
|
|
endp
|
|
|
|
FUNC_HEADER js_arm_try_armv5_op
|
|
;; clz ip, ip
|
|
DCD 0xE16FCF1C
|
|
mov pc, lr
|
|
ENTRY_END
|
|
endp
|
|
|
|
;; --------
|
|
|
|
end
|