Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / jswince.asm
1     INCLUDE kxarm.h
2
3     area js_msvc, code, readonly
4
5     MACRO
6     FUNC_HEADER $Name
7 FuncName    SETS    VBar:CC:"$Name":CC:VBar
8 PrologName  SETS    VBar:CC:"$Name":CC:"_Prolog":CC:VBar
9 FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
10
11     AREA |.pdata|,ALIGN=2,PDATA
12     DCD $FuncName
13     DCD (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000
14     AREA $AreaName,CODE,READONLY
15     ALIGN       2
16     GLOBAL      $FuncName
17     EXPORT      $FuncName
18 $FuncName
19     ROUT
20 $PrologName
21     MEND
22
23     ;; -------- Functions to test processor features.
24     export  js_arm_try_thumb_op
25     export  js_arm_try_armv6t2_op
26     export  js_arm_try_armv7_op
27     export  js_arm_try_armv6_op
28     export  js_arm_try_armv5_op
29     export  js_arm_try_vfp_op
30
31     ;; Test for Thumb support.
32     FUNC_HEADER js_arm_try_thumb_op
33     bx lr
34     mov pc, lr
35     ENTRY_END
36     endp
37
38     ;; I'm not smart enough to figure out which flags to pass to armasm to get it
39     ;; to understand movt and fmdrr/vmov; the disassembler figures them out just fine!
40
41     ;; Test for Thumb2 support.
42     FUNC_HEADER js_arm_try_armv6t2_op
43     ;; movt r0,#0xFFFF
44     DCD 0xE34F0FFF
45     mov pc,lr
46     ENTRY_END
47     endp
48
49     ;; Test for VFP support.
50     FUNC_HEADER js_arm_try_vfp_op
51     ;; fmdrr d0, r0, r1
52     DCD 0xEC410B10
53     mov pc,lr
54     ENTRY_END
55     endp
56
57     ;; Tests for each architecture version.
58
59     FUNC_HEADER js_arm_try_armv7_op
60     ;; pli pc, #0
61     DCD 0xF45FF000
62     mov pc, lr
63     ENTRY_END
64     endp
65
66     FUNC_HEADER js_arm_try_armv6_op
67     ;; rev ip, ip
68     DCD 0xE6BFCF3C
69     mov pc, lr
70     ENTRY_END
71     endp
72
73     FUNC_HEADER js_arm_try_armv5_op
74     ;; clz ip, ip
75     DCD 0xE16FCF1C
76     mov pc, lr
77     ENTRY_END
78     endp
79
80     ;; --------
81
82     end