source: branches/arm64/lisp-kernel/arm64-uuo.s @ 15550

Last change on this file since 15550 was 15550, checked in by gb, 8 years ago

Move along, nothing to see here. Honest.
Some the files (those that aren't missing ...) are empty; there's very
little in the way of actual ARMv8 code here, and there'll need to be
a lot more before this is even worth talking about.

File size: 1.5 KB
Line 
1/* Copyright (C) 2012 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/* Encode (some) exceptional conditions in aarch64 'hlt' instructions,
16   which accept a 16-bit immediate operand.  The low 3 bits of this operand
17   define the format of the upper 13 bits ; in general, there are 3 formats:
18   nullary (the upper 13 bits contain arbitrary immediate values),
19   unary (bits 7:3 encode a register (likely a GPR), bits 15:8 encode
20   type or other info, and binary (bits 7:3 encode register operand 0,
21   bits 12:8 encode register operand 1, and bits 15:13 encode extra info */
22
23hlt_code_nullary = 0
24hlt_code_unary_reg_not_lisptag = 1
25hlt_code_unary_reg_not_fulltag = 2
26hlt_code_unary_reg_not_subtag = 3
27hlt_code_unary_reg_not_xtype = 4
28hlt_code_unary_misc = 5
29hlt_code_binary = 6
30
31define(`uuo_error_reg_not_lisptag',`
32        __(hlt #(hlt_code_unary_reg_not_lisptag|(gprval($1)<<3)|$2<<8))
33        ')
34                                                                               
Note: See TracBrowser for help on using the repository browser.