source: branches/arm/lisp-kernel/x86-constants.s @ 13923

Last change on this file since 13923 was 13337, checked in by plkrueger, 10 years ago

Don't change the m4 quoting characters from their defaults (`').
(On the ARM, square brackets are used to denote memory operands, curly
braces surround register lists, and multicharacter quoting delimeters
look funny ...)

Some versions (at least) of m4 are confused by quoting characters in
comments, so try to refrain from using contractions ...

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.3 KB
Line 
1/*   Copyright (C) 2005-2009 Clozure Associates  */
2/*   This file is part of Clozure CL.    */
3 
4/*   Clozure CL is licensed under the terms of the Lisp Lesser GNU Public  */
5/*   License , known as the LLGPL and distributed with Clozure CL as the  */
6/*   file "LICENSE".  The LLGPL consists of a preamble and the LGPL,  */
7/*   which is distributed with Clozure CL as the file "LGPL".  Where these  */
8/*   conflict, the preamble takes precedence.    */
9 
10/*   Clozure CL is referenced in the preamble as the "LIBRARY."  */
11 
12/*   The LLGPL is also available online at  */
13/*   http://opensource.franz.com/preamble.html  */
14
15
16
17       
18/* Indices in %builtin-functions%  */
19       
20_builtin_plus = 0       /* +-2   */
21_builtin_minus = 1      /* --2   */
22_builtin_times = 2      /* *-2   */
23_builtin_div = 3        /* /-2   */
24_builtin_eq = 4         /* =-2   */
25_builtin_ne = 5         /* /-2   */
26_builtin_gt = 6         /* >-2   */
27_builtin_ge = 7         /* >=-2   */
28_builtin_lt = 8         /* <-2   */
29_builtin_le = 9         /* <=-2   */
30_builtin_eql = 10       /* eql   */
31_builtin_length = 11    /* length   */
32_builtin_seqtype = 12   /* sequence-type   */
33_builtin_assq = 13      /* assq   */
34_builtin_memq = 14      /* memq   */
35_builtin_logbitp = 15   /* logbitp   */
36_builtin_logior = 16    /* logior-2   */
37_builtin_logand = 17    /* logand-2   */
38_builtin_ash = 18       /* ash   */
39_builtin_negate = 19    /* %negate   */
40_builtin_logxor = 20    /* logxor-2   */
41_builtin_aref1 = 21     /* %aref1   */
42_builtin_aset1 = 22     /* %aset1   */
43       
44
45ifdef(`X8664',`
46        include(x86-constants64.s)
47',`
48        include(x86-constants32.s)
49')                                             
50
51/* registers, as used in destructuring-bind/macro-bind   */
52ifdef(`X8664',`
53define(`whole_reg',`temp1')
54define(`arg_reg',`temp0')
55define(`keyvect_reg',`arg_x')
56',`
57define(`arg_reg',`temp1')
58define(`arg_reg_b',`temp1_b')
59define(`keyvect_reg',`arg_y')
60')
61
62define(`initopt_bit',`24')
63define(`keyp_bit',`25') /*  note that keyp can be true even when 0 keys.   */
64define(`aok_bit',`26')
65define(`restp_bit',`27')
66define(`seen_aok_bit',`28')       
67       
68num_lisp_globals = 49            /* MUST UPDATE THIS !!!   */
69       
70        _struct(lisp_globals,lisp_globals_limit-(num_lisp_globals*node_size))
71         _node(weakvll)                 /* all populations as of last GC */
72         _node(initial_tcr)             /* initial thread tcr */
73         _node(image_name)              /* --image-name argument */
74         _node(BADfpscr_save_high)      /* high word of FP reg used to save FPSCR */
75         _node(unwind_resume)           /* _Unwind_Resume */
76         _node(batch_flag)              /* -b */
77         _node(host_platform)           /* for runtime platform-specific stuff   */
78         _node(argv)                    /* address of argv`0'   */
79         _node(ref_base)                /* start of oldest pointer-bearing area */
80         _node(tenured_area)            /* the tenured_area   */
81         _node(oldest_ephemeral)        /* dword address of oldest ephemeral object or 0   */
82         _node(lisp_exit_hook)          /* install foreign exception_handling   */
83         _node(lisp_return_hook)        /* install lisp exception_handling   */
84         _node(double_float_one)        /* high half of 1.0d0   */
85         _node(short_float_zero)        /* low half of 1.0d0   */
86         _node(objc2_end_catch)         /* objc_end_catch()  */
87         _node(metering_info)           /* address of lisp_metering global   */
88         _node(in_gc)                   /* non-zero when GC active   */
89         _node(lexpr_return1v)          /* simpler when &lexpr called for single value.   */
90         _node(lexpr_return)            /* magic &lexpr return code.   */
91         _node(all_areas)               /* doubly-linked list of all memory areas   */
92         _node(kernel_path)             /* real executable name */
93         _node(objc2_begin_catch)       /* objc_begin_catch   */
94         _node(stack_size)              /* from the command line */
95         _node(statically_linked)       /* non-zero if -static   */
96         _node(heap_end)                /* end of lisp heap   */
97         _node(heap_start)              /* start of lisp heap   */
98         _node(gcable_pointers)         /* linked-list of weak macptrs.   */
99         _node(gc_num)                  /* fixnum: GC call count.   */
100         _node(fwdnum)                  /* fixnum: GC "forwarder" call count.   */
101         _node(altivec_present)         /* non-zero when AltiVec available   */
102         _node(oldspace_dnode_count)    /* dynamic dnodes older than g0 start   */
103         _node(refbits)                 /* EGC refbits   */
104         _node(gc_inhibit_count)
105         _node(intflag)                 /* sigint pending   */
106         _node(default_allocation_quantum)      /* for per-thread allocation   */
107         _node(deleted_static_pairs)           
108         _node(exception_lock)
109         _node(area_lock)
110         _node(tcr_key)                 /* tsd key for per-thread tcr   */
111         _node(ret1val_addr)            /* address of "dynamic" subprims magic values return addr   */
112         _node(subprims_base)           /* address of dynamic subprims jump table   */
113         _node(saveR13)                 /* probably don't really need this   */
114         _node(saveTOC)                 /* where the 68K emulator stores the  emulated regs   */
115         _node(objc_2_personality)              /* exception "personality routine" address for ObjC 2.0 */
116         _node(kernel_imports)          /* some things we need imported for us   */
117         _node(interrupt_signal)        /* signal used by PROCESS-INTERRUPT   */
118         _node(tcr_count)               /* tcr_id for next tcr   */
119         _node(get_tcr)                 /* address of get_tcr()  */
120        _ends
121       
122       
123               
124define(`TCR_STATE_FOREIGN',1)
125define(`TCR_STATE_LISP',0)
126define(`TCR_STATE_EXCEPTION_WAIT',2)
127define(`TCR_STATE_EXCEPTION_RETURN',4)
128
129tstack_alloc_limit = 0xffff
130       
131mxcsr_ie_bit = 0                /* invalid */
132mxcsr_de_bit = 1                /* denorm */       
133mxcsr_ze_bit = 2
134mxcsr_oe_bit = 3
135mxcsr_ue_bit = 4
136mxcsr_pe_bit = 5
137num_mxcsr_exception_bits = 6
138       
139mxcsr_all_exceptions = ((1<<num_mxcsr_exception_bits)-1)
140       
Note: See TracBrowser for help on using the repository browser.