Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
50395287 by Raymond Toy at 2024-05-31T08:28:43-07:00
Update release notes for newly closed issues
Forgot to add these in the MRs that closed the issues.
- - - - -
1 changed file:
- src/general-info/release-21f.md
Changes:
=====================================
src/general-info/release-21f.md
=====================================
@@ -77,6 +77,9 @@ public domain.
* ~~#298~~ Add `with-float-rounding-mode` macro
* ~~#299~~ Enable xoroshiro assembly routine
* ~~#314~~ tanh incorrect for large args
+ * ~~#316~~ Support roundtrip character casing
+ * ~~#320~~ Motif variant not defaulted for `x86_linux_clang` config
+ * ~~#321~~ Rename Motif Config.x86 to Config.linux
* Other changes:
* Improvements to the PCL implementation of CLOS:
* Changes to building procedure:
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/50395287ad5abc8842dbf3d…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/50395287ad5abc8842dbf3d…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-323-cl-string-casing at cmucl / cmucl
Commits:
db08decf by Raymond Toy at 2024-05-31T07:50:47-07:00
Make test string contain all possible characters.
Previously, we skipped over surrogates.
- - - - -
0da20df4 by Raymond Toy at 2024-05-31T08:05:47-07:00
Update nstring casing functions.
Since we're not dealing with surrogate pairs, we can simplify the
functions quite a bit.
- - - - -
2 changed files:
- src/code/string.lisp
- tests/string.lisp
Changes:
=====================================
src/code/string.lisp
=====================================
@@ -804,6 +804,7 @@
(setf (schar newstring new-index) (schar string index)))
newstring))))
+#+nil
(defun nstring-upcase (string &key (start 0) end)
"Given a string, returns that string with all lower case alphabetic
characters converted to uppercase."
@@ -828,6 +829,20 @@
(setf (schar string (incf index)) lo))))))
save-header))
+(defun nstring-upcase (string &key (start 0) end)
+ "Given a string, returns that string with all lower case alphabetic
+ characters converted to uppercase."
+ (declare (fixnum start))
+ (let ((save-header string))
+ (with-one-string string start end offset
+ (do ((index start (1+ index)))
+ ((= index (the fixnum end)))
+ (declare (fixnum index))
+ (setf (schar string index)
+ (char-upcase (schar string index))))
+ save-header)))
+
+#+nil
(defun nstring-downcase (string &key (start 0) end)
"Given a string, returns that string with all upper case alphabetic
characters converted to lowercase."
@@ -852,6 +867,19 @@
(setf (schar string (incf index)) lo))))))
save-header))
+(defun nstring-downcase (string &key (start 0) end)
+ "Given a string, returns that string with all upper case alphabetic
+ characters converted to lowercase."
+ (declare (fixnum start))
+ (let ((save-header string))
+ (with-one-string string start end offset
+ (do ((index start (1+ index)))
+ ((= index (the fixnum end)))
+ (declare (fixnum index))
+ (setf (schar string index)
+ (char-downcase (schar string index)))))
+ save-header))
+
(defun nstring-capitalize (string &key (start 0) end)
"Given a string, returns that string with the first
character of each ``word'' converted to upper-case, and remaining
=====================================
tests/string.lisp
=====================================
@@ -8,11 +8,10 @@
(defun make-test-string ()
;; Create a string consisting of all the code units EXCEPT for the
;; surrogates because string casing handles that differently.
- (coerce
- (loop for code from 0 to #xffff
- unless (lisp::surrogatep code)
- collect (code-char code))
- 'string))
+ (let ((s (make-string char-code-limit)))
+ (dotimes (k char-code-limit)
+ (setf (aref s k) (code-char k)))
+ s))
(define-test string-upcase
(:tag :issues)
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/ed36bab589e90fc2a222a6…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/ed36bab589e90fc2a222a6…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-322-optimize-case-mapping-size at cmucl / cmucl
Commits:
cf069780 by Raymond Toy at 2024-05-30T18:36:12-07:00
Remove unneeded old file
Oops. This was the old version that was modified to reduce space
usage. Merged these changes to create-case-mapping.lisp.
- - - - -
1 changed file:
- − src/tools/create-case-table.lisp
Changes:
=====================================
src/tools/create-case-table.lisp deleted
=====================================
@@ -1,174 +0,0 @@
-;; Creates a table of tables that maps a lower case letter to an upper
-;; case letter or an upper case letter to a lower case letter. This
-;; mapping only works if the roundtrip casing returns the original
-;; character, as required by the standard.
-;;
-;; STAGE2-SIZE is the number of bits to used for the index of the
-;; second stage table.
-;;
-;; Let C be a 16-bit character code. C is decomposed into two parts.
-;; The high bits are used as the index into the first table, and the
-;; low bits are used as the index into the second table. The number
-;; of low bits is STAGE2-SIZE.
-;;
-;; If the second stage table is all zeroes, the table is replaced by
-;; NIL since it contains no valid mapping of lower or upper case
-;; letters.
-;;
-;; Each element of this table is 32-bits long. The low 16 bits
-;; contains the mapping of C to the corresponding upper case letter.
-;; The high 16 bits maps C to the corresponding lower case letter.
-(defun compute-case-table (stage2-size)
- (let ((table (make-array (ash 1 (- 16 stage2-size)))))
- (dotimes (i (length table))
- (setf (aref table i) (make-array (ash 1 stage2-size)
- :initial-element 0
- :element-type '(unsigned-byte 32))))
- (dotimes (i char-code-limit)
- (let ((stage1 (ldb (byte (- 16 stage2-size) stage2-size) i))
- (stage2 (ldb (byte stage2-size 0) i)))
- (let ((upper (lisp::unicode-upper i))
- (lower (lisp::unicode-lower i))
- (entry 0))
- (declare (type (unsigned-byte 32) entry))
-
- (assert (< upper char-code-limit))
- (assert (< lower char-code-limit))
-
- ;; Compute mapping from lower case to upper case which is
- ;; stored in the low 16 bits of the stage2 table.
- ;;
- ;; Only consider characters that have an upper case letter and
- ;; whose lowercase version returns the original letter.
- (when (and (/= i upper)
- (= i (lisp::unicode-lower upper)))
- (setf entry (ldb (byte 16 0) (- i upper))))
- ;; Compute mapping from upper case to lower case which is
- ;; stored in the high 16 bits ofthe stage2 table.
- ;;
- ;; Only consider characters that have a lower case letter and
- ;; whose upper case version returns the original letter.
- (when (and (/= i lower)
- (= i (lisp::unicode-upper lower)))
- (setf entry (ash (ldb (byte 16 0) (- i lower))
- 16)))
-
- ;; Note: the entry can only contain a lower case code or an
- ;; upper case code, not both because we a character is
- ;; either lower case or upper case and not both at the same
- ;; time.
- (setf (aref (aref table stage1) stage2)
- entry))))
-
- ;; Find each stage2 table that is all zeroes and replace it with
- ;; NIL.
- (dotimes (k (length table))
- (let ((empty (count-if-not #'zerop (aref table k))))
- (when (zerop empty)
- (setf (aref table k) nil))))
- table))
-
-;; Given a case-mapping table TABLE, print some information about the
-;; size of the tables. This includes the number of empty and
-;; non-empty stage2 tables. Also print out how many total non-NIL
-;; entries are needed. This is proportional to the total amount of
-;; memory needed to store all the tables.
-(defun print-table-stats (table stage2-size)
- (let ((stage1-size (length table))
- (stage2 (loop for v across table
- when v
- sum (length v)))
- (empty (count-if #'null table)))
- (format t "stage2-size ~D~%" stage2-size)
- (format t " stage1 entries: ~D: " stage1-size)
- (format t " ~D non-empty ~D empty~%" (- stage1-size empty) empty)
- (format t " stage2 entries: ~D (length ~D)~%"
- stage2 (ash 1 stage2-size))
- (format t " total : ~D~%" (+ (length table) stage2))
- (+ (length table) stage2)))
-
-(defun find-optimum-size ()
- (let ((results
- (first
- (sort (loop for stage2-size from 1 to 15
- collect (list stage2-size
- (print-table-stats
- (compute-case-table stage2-size)
- stage2-size)))
- #'<
- :key #'second))))
- (format t "Optimum table size: stage2-size ~D, space ~D~%"
- (first results)
- (second results))))
-
-;; Print the case table TABLE to a file named by PATHNAME.
-(defun dump-case-table (pathname table stage2-size)
- ;; The first entry in the table MUST be NIL because we use that as
- ;; the all-zeroes array because of the sparse entries in the table.
- (assert (null (aref table 0)))
-
- (with-open-file (stream pathname :direction :output :if-exists :supersede)
- (format stream
- "~
-/*
- * DO NOT EDIT.
- *
- * This was generated by (BUILD-CASE-TABLE :STAGE2-SIZE ~D) in
- * src/tools/create-case-table.c.
- */~2%"
- stage2-size)
- (format stream "#include <stdint.h>~%")
- (format stream "#include <stddef.h>~%")
- (format stream "~2%const uint32_t stage2[] = {~%")
- (flet ((print-table (header table stream)
- ;; Neatly print the table TABLE to STREAM. Each table is
- ;; preceded by a C comment in HEADER. The entries are
- ;; printed in hex, and neatly wrapped.
- (format stream "/* ~A */" header)
- (pprint-newline :mandatory stream)
- (dotimes (n (length table))
- (unless (zerop n)
- (write-char #\, stream)
- (write-char #\space stream)
- (pprint-newline :fill stream))
- ;;(pprint-pop)
- (format stream "0x~8,'0x" (aref table n)))
- (princ #\, stream)
- (pprint-newline :mandatory stream)))
- (let ((index 0)
- offsets)
- (pprint-logical-block (stream nil :prefix " ")
- (print-table "zeroes"
- (make-array (ash 1 stage2-size)
- :initial-element 0)
- stream)
- (loop for k from 0
- for s2 across table
- when s2
- do (progn
- (incf index (ash 1 stage2-size))
- (push index offsets)
- (print-table (format nil "stage2_~D (offset ~D)" k index)
- s2
- stream))))
- (format stream "};~%")
-
- ;; Now dump the stage1 table
- (format stream "~2%const uint16_t case_mapping[~D] = {~%"
- (length table))
- (setf offsets (nreverse offsets))
- (loop for s2 across table
- for k from 0
- if s2
- do (format stream " 0x~4,'0x, /* stage2_~D */~%"
- (pop offsets)
- k)
- else
- do (format stream " 0x~4,'0x,~%"
- 0))
- (format stream "};~%")
- (format t "Wrote ~S~%" (namestring stream))))))
-
-(defun build-case-table (&key (stage2-size 6) (pathname "./src/lisp/case-mapping.c"))
- (let ((table (compute-case-table stage2-size)))
- (dump-case-table pathname table stage2-size)))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/cf0697808bab7742a0b4f2a…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/cf0697808bab7742a0b4f2a…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-322-optimize-case-mapping-size at cmucl / cmucl
Commits:
a3a3fbd9 by Raymond Toy at 2024-05-30T14:38:30+00:00
Fix #312: Use correct type for message_write_float
- - - - -
7e7f3f0f by Raymond Toy at 2024-05-30T14:38:41+00:00
Merge branch 'issue-312-motif-server' into 'master'
Fix #312: Use correct type for message_write_float
Closes #312
See merge request cmucl/cmucl!218
- - - - -
c6c3c9ce by Raymond Toy at 2024-05-30T22:54:14+00:00
Fix #316: Support roundtrip character casing
- - - - -
98afa3c8 by Raymond Toy at 2024-05-30T22:54:20+00:00
Merge branch 'issue-316-support-roundtrip-char-casing' into 'master'
Fix #316: Support roundtrip character casing
Closes #316
See merge request cmucl/cmucl!220
- - - - -
caf68d75 by Raymond Toy at 2024-05-30T16:01:11-07:00
Merge branch 'master' into issue-322-optimize-case-mapping-size
- - - - -
4bd8ca89 by Raymond Toy at 2024-05-30T18:27:42-07:00
Fix up merge mistakes
- - - - -
7 changed files:
- src/code/char.lisp
- src/i18n/locale/cmucl.pot
- src/lisp/case-mapping.c
- src/motif/server/datatrans.c
- src/motif/server/datatrans.h
- src/motif/server/tables.h
- + src/tools/create-case-mapping.lisp
Changes:
=====================================
src/code/char.lisp
=====================================
@@ -73,8 +73,8 @@
(alien:def-alien-variable "stage2"
(alien:array c-call:unsigned-int nil))
-;; Each entry in the case table consists of the code for either an
-;; upper case or lower case character code.
+;; Each entry in the case mapping table consists of the code for
+;; either an upper case or lower case character code.
(defconstant +upper-case-entry+ (byte 16 0))
(defconstant +lower-case-entry+ (byte 16 16))
@@ -84,9 +84,9 @@
(declaim (inline case-mapping-entry))
(defun case-mapping-entry (code)
- "For the character code, CODE, return 0 or the 32-bit value from the
- case table. A value of 0 means there was no case mapping (neither
- upper nor lower case)."
+ "For the character code, CODE, the 32-bit value from the
+ case mapping table that indicates the delta between CODE and the
+ corresponding upper or lower case character for CODE."
(declare (type (integer 0 (#.char-code-limit)) code)
(optimize (speed 3) (safety 0)))
(let* ((index1 (ldb (byte (- 16 +stage2-size+) +stage2-size+)
@@ -94,7 +94,7 @@
(index2 (ldb (byte +stage2-size+ 0)
code))
(stage2-offset (alien:deref case-mapping index1)))
- (alien:deref stage2 (+ (* stage2-offset index2)))))
+ (alien:deref stage2 (+ stage2-offset index2))))
(declaim (inline case-mapping-lower-case))
(defun case-mapping-lower-case (code)
=====================================
src/i18n/locale/cmucl.pot
=====================================
@@ -5457,9 +5457,9 @@ msgstr ""
#: src/code/char.lisp
msgid ""
-"For the character code, CODE, return 0 or the 32-bit value from the\n"
-" case table. A value of 0 means there was no case mapping (neither\n"
-" upper nor lower case)."
+"For the character code, CODE, the 32-bit value from the\n"
+" case mapping table that indicates the delta between CODE and the\n"
+" corresponding upper or lower case character for CODE."
msgstr ""
#: src/code/char.lisp
=====================================
src/lisp/case-mapping.c
=====================================
@@ -1,8 +1,8 @@
/*
* DO NOT EDIT.
*
- * This was generated by (BUILD-CASE-TABLE :STAGE2-SIZE 6) in
- * src/tools/create-case-table.c.
+ * This was generated by (BUILD-CASE-MAPPING-TABLE :STAGE2-SIZE 6) in
+ * src/tools/create-case-mapping.lisp.
*/
#include <stdint.h>
=====================================
src/motif/server/datatrans.c
=====================================
@@ -265,10 +265,10 @@ void message_write_color(message_t m,XColor *color,int tag)
message_put_word(m,color->blue);
}
-void message_write_float(message_t m,float f,int tag)
+void message_write_float(message_t m,void *f,int tag)
{
message_put_dblword(m,combine_type_and_data(tag,0));
- message_put_dblword(m,f);
+ message_put_dblword(m,*(long *) f);
}
@@ -524,8 +524,8 @@ void message_read_color(message_t m,XColor *color,int tag, int red)
void message_read_float(message_t m,float *f,int tag,int data)
{
- fprintf(stderr,">>>>> Warning:message_read_float: Not implemented.\n");
- fflush(stderr);
+ long d = message_get_dblword(m);
+ memcpy(f, &d, sizeof(*f));
}
=====================================
src/motif/server/datatrans.h
=====================================
@@ -38,7 +38,7 @@ extern void message_write_int_list();
extern void message_write_event();
extern void message_write_color();
/* GCC complains without the full prototype */
-extern void message_write_float(message_t,float,int);
+extern void message_write_float(message_t,void *,int);
=====================================
src/motif/server/tables.h
=====================================
@@ -10,8 +10,8 @@
#ifndef TABLES_H
#define TABLES_H
-typedef void (*type_writer)(message_t out,caddr_t src,int type_tag);
-typedef void (*type_reader)(message_t in,caddr_t dest,int type_tag,int data);
+typedef void (*type_writer)(message_t out,void *src,int type_tag);
+typedef void (*type_reader)(message_t in,void *dest,int type_tag,int data);
typedef struct {
String type;
=====================================
src/tools/create-case-mapping.lisp
=====================================
@@ -0,0 +1,174 @@
+;; Creates a table of tables that maps a lower case letter to an upper
+;; case letter or an upper case letter to a lower case letter. This
+;; mapping only works if the roundtrip casing returns the original
+;; character, as required by the standard.
+;;
+;; STAGE2-SIZE is the number of bits to used for the index of the
+;; second stage table.
+;;
+;; Let C be a 16-bit character code. C is decomposed into two parts.
+;; The high bits are used as the index into the first table, and the
+;; low bits are used as the index into the second table. The number
+;; of low bits is STAGE2-SIZE.
+;;
+;; If the second stage table is all zeroes, the table is replaced by
+;; NIL since it contains no valid mapping of lower or upper case
+;; letters.
+;;
+;; Each element of this table is 32-bits long. The low 16 bits
+;; contains the mapping of C to the corresponding upper case letter.
+;; The high 16 bits maps C to the corresponding lower case letter.
+(defun compute-case-mapping-table (stage2-size)
+ (let ((table (make-array (ash 1 (- 16 stage2-size)))))
+ (dotimes (i (length table))
+ (setf (aref table i) (make-array (ash 1 stage2-size)
+ :initial-element 0
+ :element-type '(unsigned-byte 32))))
+ (dotimes (i char-code-limit)
+ (let ((stage1 (ldb (byte (- 16 stage2-size) stage2-size) i))
+ (stage2 (ldb (byte stage2-size 0) i)))
+ (let ((upper (lisp::unicode-upper i))
+ (lower (lisp::unicode-lower i))
+ (entry 0))
+ (declare (type (unsigned-byte 32) entry))
+
+ (assert (< upper char-code-limit))
+ (assert (< lower char-code-limit))
+
+ ;; Compute mapping from lower case to upper case which is
+ ;; stored in the low 16 bits of the stage2 table.
+ ;;
+ ;; Only consider characters that have an upper case letter and
+ ;; whose lowercase version returns the original letter.
+ (when (and (/= i upper)
+ (= i (lisp::unicode-lower upper)))
+ (setf entry (ldb (byte 16 0) (- i upper))))
+ ;; Compute mapping from upper case to lower case which is
+ ;; stored in the high 16 bits ofthe stage2 table.
+ ;;
+ ;; Only consider characters that have a lower case letter and
+ ;; whose upper case version returns the original letter.
+ (when (and (/= i lower)
+ (= i (lisp::unicode-upper lower)))
+ (setf entry (ash (ldb (byte 16 0) (- i lower))
+ 16)))
+
+ ;; Note: the entry can only contain a lower case code or an
+ ;; upper case code, not both because we a character is
+ ;; either lower case or upper case and not both at the same
+ ;; time.
+ (setf (aref (aref table stage1) stage2)
+ entry))))
+
+ ;; Find each stage2 table that is all zeroes and replace it with
+ ;; NIL.
+ (dotimes (k (length table))
+ (let ((empty (count-if-not #'zerop (aref table k))))
+ (when (zerop empty)
+ (setf (aref table k) nil))))
+ table))
+
+;; Given a case-mapping table TABLE, print some information about the
+;; size of the tables. This includes the number of empty and
+;; non-empty stage2 tables. Also print out how many total non-NIL
+;; entries are needed. This is proportional to the total amount of
+;; memory needed to store all the tables.
+(defun print-table-stats (table stage2-size)
+ (let ((stage1-size (length table))
+ (stage2 (loop for v across table
+ when v
+ sum (length v)))
+ (empty (count-if #'null table)))
+ (format t "stage2-size ~D~%" stage2-size)
+ (format t " stage1 entries: ~D: " stage1-size)
+ (format t " ~D non-empty ~D empty~%" (- stage1-size empty) empty)
+ (format t " stage2 entries: ~D (length ~D)~%"
+ stage2 (ash 1 stage2-size))
+ (format t " total : ~D~%" (+ (length table) stage2))
+ (+ (length table) stage2)))
+
+(defun find-optimum-size ()
+ (let ((results
+ (first
+ (sort (loop for stage2-size from 1 to 15
+ collect (list stage2-size
+ (print-table-stats
+ (compute-case-mapping-table stage2-size)
+ stage2-size)))
+ #'<
+ :key #'second))))
+ (format t "Optimum table size: stage2-size ~D, space ~D~%"
+ (first results)
+ (second results))))
+
+;; Print the case table TABLE to a file named by PATHNAME.
+(defun dump-case-mapping-table (pathname table stage2-size)
+ ;; The first entry in the table MUST be NIL because we use that as
+ ;; the all-zeroes array because of the sparse entries in the table.
+ (assert (null (aref table 0)))
+
+ (with-open-file (stream pathname :direction :output :if-exists :supersede)
+ (format stream
+ "~
+/*
+ * DO NOT EDIT.
+ *
+ * This was generated by (BUILD-CASE-MAPPING-TABLE :STAGE2-SIZE ~D) in
+ * src/tools/create-case-mapping.lisp.
+ */~2%"
+ stage2-size)
+ (format stream "#include <stdint.h>~%")
+ (format stream "#include <stddef.h>~%")
+ (format stream "~2%const uint32_t stage2[] = {~%")
+ (flet ((print-table (header table stream)
+ ;; Neatly print the table TABLE to STREAM. Each table is
+ ;; preceded by a C comment in HEADER. The entries are
+ ;; printed in hex, and neatly wrapped.
+ (format stream "/* ~A */" header)
+ (pprint-newline :mandatory stream)
+ (dotimes (n (length table))
+ (unless (zerop n)
+ (write-char #\, stream)
+ (write-char #\space stream)
+ (pprint-newline :fill stream))
+ ;;(pprint-pop)
+ (format stream "0x~8,'0x" (aref table n)))
+ (princ #\, stream)
+ (pprint-newline :mandatory stream)))
+ (let ((index 0)
+ offsets)
+ (pprint-logical-block (stream nil :prefix " ")
+ (print-table "zeroes"
+ (make-array (ash 1 stage2-size)
+ :initial-element 0)
+ stream)
+ (loop for k from 0
+ for s2 across table
+ when s2
+ do (progn
+ (incf index (ash 1 stage2-size))
+ (push index offsets)
+ (print-table (format nil "stage2_~D (offset ~D)" k index)
+ s2
+ stream))))
+ (format stream "};~%")
+
+ ;; Now dump the stage1 table
+ (format stream "~2%const uint16_t case_mapping[~D] = {~%"
+ (length table))
+ (setf offsets (nreverse offsets))
+ (loop for s2 across table
+ for k from 0
+ if s2
+ do (format stream " 0x~4,'0x, /* stage2_~D */~%"
+ (pop offsets)
+ k)
+ else
+ do (format stream " 0x~4,'0x,~%"
+ 0))
+ (format stream "};~%")
+ (format t "Wrote ~S~%" (namestring stream))))))
+
+(defun build-case-mapping-table (&key (stage2-size 6) (pathname "./src/lisp/case-mapping.c"))
+ (let ((table (compute-case-mapping-table stage2-size)))
+ (dump-case-mapping-table pathname table stage2-size)))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/0ff3a9659d487a93fffb7d…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/0ff3a9659d487a93fffb7d…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-316-support-roundtrip-char-casing at cmucl / cmucl
Commits:
6c1f62ca by Raymond Toy at 2024-05-30T07:45:58-07:00
Fix comments/docstrings and replace "case table" with "case mapping".
- - - - -
2b8d6de1 by Raymond Toy at 2024-05-30T07:47:22-07:00
Rename create-case-table.lisp to create-case-mapping.lisp.
- - - - -
38549cf2 by Raymond Toy at 2024-05-30T14:42:43-07:00
Rename case-table to case-mapping for consistency
- - - - -
2f2f5ccb by Raymond Toy at 2024-05-30T14:43:07-07:00
Regenerated from latest create-case-mapping.lisp.
- - - - -
1b47d323 by Raymond Toy at 2024-05-30T14:43:26-07:00
Update due to changed docstrings.
- - - - -
4 changed files:
- src/code/char.lisp
- src/i18n/locale/cmucl.pot
- src/lisp/case-mapping.c
- src/tools/create-case-table.lisp → src/tools/create-case-mapping.lisp
Changes:
=====================================
src/code/char.lisp
=====================================
@@ -63,15 +63,15 @@
(defconstant +ascii-limit+
127
"A character code strictly larger than this is handled using Unicode
- rules.")
+c rules.")
;; Table of mappings for upper case and lower case letters. See
;; src/lisp/case-mapping.c.
(alien:def-alien-variable "case_mapping"
(alien:array (alien:* (alien:array c-call:unsigned-int 64)) 1024))
-;; Each entry in the case table consists of the code for either an
-;; upper case or lower case character code.
+;; Each entry in the case mapping table consists of the code for
+;; either an upper case or lower case character code.
(defconstant +upper-case-entry+ (byte 16 0))
(defconstant +lower-case-entry+ (byte 16 16))
@@ -82,9 +82,9 @@
(declaim (inline case-mapping-entry))
(defun case-mapping-entry (code)
- "For the character code, CODE, return 0 or the 32-bit value from the
- case table. A value of 0 means there was no case mapping (neither
- upper nor lower case)."
+ "For the character code, CODE, the 32-bit value from the
+ case mapping table that indicates the delta between CODE and the
+ corresponding upper or lower case character for CODE."
(declare (type (integer 0 (#.char-code-limit)) code)
(optimize (speed 3) (safety 0)))
(let* ((index1 (ldb (byte (- 16 +stage2-size+) +stage2-size+)
=====================================
src/i18n/locale/cmucl.pot
=====================================
@@ -5446,7 +5446,7 @@ msgstr ""
#: src/code/char.lisp
msgid ""
"A character code strictly larger than this is handled using Unicode\n"
-" rules."
+"c rules."
msgstr ""
#: src/code/char.lisp
@@ -5457,9 +5457,9 @@ msgstr ""
#: src/code/char.lisp
msgid ""
-"For the character code, CODE, return 0 or the 32-bit value from the\n"
-" case table. A value of 0 means there was no case mapping (neither\n"
-" upper nor lower case)."
+"For the character code, CODE, the 32-bit value from the\n"
+" case mapping table that indicates the delta between CODE and the\n"
+" corresponding upper or lower case character for CODE."
msgstr ""
#: src/code/char.lisp
=====================================
src/lisp/case-mapping.c
=====================================
@@ -1,8 +1,8 @@
/*
* DO NOT EDIT.
*
- * This was generated by (BUILD-CASE-TABLE :stage2-size 6) in
- * src/tools/create-case-table.c.
+ * This was generated by (BUILD-CASE-MAPPING-TABLE :STAGE2-SIZE 6) in
+ * src/tools/create-case-mapping.lisp.
*/
#include <stdint.h>
=====================================
src/tools/create-case-table.lisp → src/tools/create-case-mapping.lisp
=====================================
@@ -18,7 +18,7 @@
;; Each element of this table is 32-bits long. The low 16 bits
;; contains the mapping of C to the corresponding upper case letter.
;; The high 16 bits maps C to the corresponding lower case letter.
-(defun compute-case-table (stage2-size)
+(defun compute-case-mapping-table (stage2-size)
(let ((table (make-array (ash 1 (- 16 stage2-size)))))
(dotimes (i (length table))
(setf (aref table i) (make-array (ash 1 stage2-size)
@@ -93,7 +93,7 @@
(sort (loop for stage2-size from 1 to 15
collect (list stage2-size
(print-table-stats
- (compute-case-table stage2-size)
+ (compute-case-mapping-table stage2-size)
stage2-size)))
#'<
:key #'second))))
@@ -119,15 +119,15 @@
(format stream "~%};~%"))
;; Print the case table TABLE to a file named by PATHNAME.
-(defun dump-case-table (pathname table stage2-size)
+(defun dump-case-mapping-table (pathname table stage2-size)
(with-open-file (stream pathname :direction :output :if-exists :supersede)
(format stream
"~
/*
* DO NOT EDIT.
*
- * This was generated by (BUILD-CASE-TABLE :STAGE2-SIZE ~D) in
- * src/tools/create-case-table.c.
+ * This was generated by (BUILD-CASE-MAPPING-TABLE :STAGE2-SIZE ~D) in
+ * src/tools/create-case-mapping.lisp.
*/~2%"
stage2-size)
(format stream "#include <stdint.h>~%")
@@ -156,6 +156,6 @@
(format stream "};~%")
(format t "Wrote ~S~%" (namestring stream))))
-(defun build-case-table (&key (stage2-size 6) (pathname "./src/lisp/case-mapping.c"))
- (let ((table (compute-case-table stage2-size)))
- (dump-case-table pathname table stage2-size)))
+(defun build-case-mapping-table (&key (stage2-size 6) (pathname "./src/lisp/case-mapping.c"))
+ (let ((table (compute-case-mapping-table stage2-size)))
+ (dump-case-mapping-table pathname table stage2-size)))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/3c52b57623dcd428679831…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/3c52b57623dcd428679831…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-316-support-roundtrip-char-casing at cmucl / cmucl
Commits:
d1317fa3 by Raymond Toy at 2012-11-23T09:35:49-08:00
First cut at ARM vm definitions.
- - - - -
4cba930e by Raymond Toy at 2012-11-23T11:05:19-08:00
First step at insts. Incomplete, but testing out pull requests.
- - - - -
37b87911 by Raymond Toy at 2012-12-01T15:53:03-08:00
Add instruction definitions for basic data-processing, load/store, and
branches.
- - - - -
69b33d83 by Raymond Toy at 2012-12-02T09:28:41-08:00
Clean up so it can compile.
- - - - -
86006c39 by Raymond Toy at 2012-12-02T09:34:43-08:00
Add ARM package.
- - - - -
701304d7 by Raymond Toy at 2012-12-02T09:35:11-08:00
Update vmdir to add arm directory.
- - - - -
aa27358f by Raymond Toy at 2012-12-02T10:30:42-08:00
Get file to compile successfully.
o Add PC as a defreg, so we can do (simple) PC-relative addressing.
o Clean up locations for float types.
- - - - -
89a19543 by Raymond Toy at 2012-12-02T12:31:13-08:00
Merge branch 'rtoy-update-packages-setup' into add-insts-1
- - - - -
5c9e2ae7 by Raymond Toy at 2012-12-02T12:35:11-08:00
First version of parms for ARM, based on SPARC.
- - - - -
014cf49b by Raymond Toy at 2012-12-02T12:35:24-08:00
Add arm-fasl-file-implementation.
- - - - -
cc72fe95 by Raymond Toy at 2012-12-02T12:36:01-08:00
Merge branch 'rtoy-add-parms' into add-insts-1
- - - - -
ecde5808 by Raymond Toy at 2012-12-02T13:11:43-08:00
Add default value for cond for the branch instructions.
- - - - -
0dcfb902 by Raymond Toy at 2012-12-02T13:31:24-08:00
Export arm-fasl-file-implementation.
- - - - -
bb60a70c by Raymond Toy at 2012-12-02T21:40:41-08:00
Add multiply instructions.
- - - - -
36944bb0 by Raymond Toy at 2012-12-02T21:52:18-08:00
Update from review.
- - - - -
bbed0c05 by Raymond Toy at 2012-12-04T21:35:16-08:00
More instructions
o Cleaned up some things, with commments added.
o Divide and BKPT instructions added.
o Added many floating-point instructions.
Compiles, with warnings.
- - - - -
0a38720c by Raymond Toy at 2012-12-04T22:43:29-08:00
o Clean up fp-reg-tn-encoding
o Other random cleanups and typo fixes.
- - - - -
23684725 by Raymond Toy at 2012-12-05T20:56:53-08:00
o Add format-base for the basic instruction layout and try to use it
in more places.
o Remove disassembler instruction conflicts from all instructions
except ldrh and ldrsh. (Don't know why they conflict. They look
different.)
- - - - -
8eb90a04 by Raymond Toy at 2012-12-05T21:35:39-08:00
Add movw and movt.
- - - - -
9ac73ac9 by Raymond Toy at 2012-12-05T21:42:52-08:00
Change format-mul and format-bkpt to include format-base.
- - - - -
09d8a6ac by Raymond Toy at 2012-12-05T21:46:36-08:00
Change format-2-immed and format-2-reg to include format-base.
- - - - -
ee28af74 by Raymond Toy at 2012-12-05T22:28:22-08:00
o Change format-2-halfword* to format-0-halfword*, and include
format-base.
o Fix some issues in conflicting instructions because we forgot to
set the size field for the disassembler.
o Actually implement the vmov instructions.
Woohoo! disassem::print-backend-inst-space prints out all the defined
instructions.
- - - - -
850a291e by Raymond Toy at 2012-12-06T19:10:21-08:00
Update printer for condition-code argument type to print out the cond
field correctly. In all other inst printers, we can just say "cond"
now. (I think.)
- - - - -
1cb46330 by Raymond Toy at 2012-12-06T20:10:42-08:00
Fix the encodings for single and double regs.
- - - - -
51b139f4 by Raymond Toy at 2012-12-06T21:36:34-08:00
o Define VLDR/VSTR instructions.
o Minor cleanup for printing BLX instructions.
- - - - -
76369810 by Raymond Toy at 2012-12-07T23:21:06-08:00
o Add shift-type arg type and use it to print out the shift type.
o Add dummy maybe-add-notes.
o Correct some printers to print the right thing.
- - - - -
2abba9d5 by Raymond Toy at 2012-12-08T00:31:41-08:00
Fix some more printers.
- - - - -
62b8a597 by Raymond Toy at 2012-12-08T10:33:03-08:00
o Fix up printers for many instructions
o Fix up some instruction formats
o Fix up some instrcution definition macros
- - - - -
667c76c3 by Raymond Toy at 2012-12-08T13:54:51-08:00
o Clean up the MOV inst. It doesn't support the shifted register
operand anymore. (That's a pseudo-op according to ARM).
o Added the shift instructions.
- - - - -
0f30e089 by Raymond Toy at 2012-12-08T14:24:39-08:00
Fix printing of shift instructions.
- - - - -
e6a5c81d by Raymond Toy at 2012-12-08T15:26:21-08:00
Update VCMP/VCMPE instruction so that it at least disassemble.
- - - - -
572a33d3 by Raymond Toy at 2012-12-09T09:48:36-08:00
Many bug fixes:
o There is no STRSH and STRSB instructions, Duh!
o Make all instruction formats include format-base and update
emitters and instructions appropriately.
o Define MVN separately from the other data processing instructions;
it's not quite like them.
o Fix some bugs in bits in the shift instructions.
o Fix bad definition of mls (it never sets the flags)
- - - - -
452384e4 by Raymond Toy at 2012-12-09T11:00:57-08:00
Add UDF, SVC, and NOP instructions.
- - - - -
e981aa8d by Raymond Toy at 2012-12-10T19:27:29-08:00
Add vmsr and vmrs to access FPSCR.
- - - - -
9cd3d947 by Raymond Toy at 2012-12-10T21:03:13-08:00
o Add MRS
o Add VMOV (ARM reg to/from single-reg)
- - - - -
eceece45 by Raymond Toy at 2012-12-13T21:14:55-08:00
Initial version of parms, copied from the sparc port.
- - - - -
59bba4c8 by rtoy at 2012-12-13T21:18:19-08:00
Merged in arm-rtoy-add-parms (pull request #4: Initial version of parms, copied from the sparc port.)
- - - - -
1b2d3aac by Raymond Toy at 2012-12-13T21:22:35-08:00
Update parms for ARM
o Add correct float trap info for ARM.
o Add initial guess for static symbols, number-stack-displacement.
o Remove sparcisms.
- - - - -
3a462aaa by Raymond Toy at 2012-12-13T21:43:04-08:00
Support fixups for the MOVW and MOVT instructions. (Untested.)
- - - - -
2c1b7b7b by Raymond Toy at 2012-12-15T09:09:07-08:00
Clean up
o Add some comments,
o Indent some things
- - - - -
7f8c5532 by Raymond Toy at 2012-12-15T12:00:04-08:00
Add MSR and fix some issues
o Add MSR instruction
o Fix incorrect number of args for emit-format-vfp-fpscr.
o Fix incorrect number of args for emitter in define-load/store-extra.
- - - - -
532cd200 by Raymond Toy at 2012-12-16T09:31:42-08:00
o Update inst column width
o Try to clean up VCVT instructions somewhat. Still needs work.
- - - - -
5e9eb99a by Raymond Toy at 2012-12-16T09:49:42-08:00
o Need to use STREAM arg in SHIFT-TYPE arg-type printer.
o Add CLZ instruction.
- - - - -
b7d13c95 by Raymond Toy at 2012-12-17T21:29:28-08:00
o Allow using ARM register names instead of lisp register names when
disassembling instructions. (This is useful when comparing
disasembly from other disassemblers that use ARM syntax.)
o Minor changes to use less vertical code space.
o Forgot to add #<shift> for ROR shifts.
o Forget to set z 0 for the format-0-reg-shifted printer.
- - - - -
17d7fc0d by Raymond Toy at 2012-12-19T19:26:18-08:00
Change BKPT to allow any cond value in disassembly, but only allow :al
on assembly.
- - - - -
c8abf8b7 by Raymond Toy at 2012-12-19T19:59:38-08:00
Add instruction macro li.
- - - - -
f10f9dfa by Raymond Toy at 2012-12-26T14:43:41-08:00
Update according to review.
- - - - -
4a696ced by rtoy at 2012-12-26T15:11:59-08:00
Merged in rtoy-update-packages-setup (pull request #3: Add ARM package, update vmdir, get vm.lisp to compile)
- - - - -
a942899b by Raymond Toy at 2012-12-26T16:21:06-08:00
Initial version of script to cross-compile from x86 to arm/linux.
- - - - -
65b752f3 by Raymond Toy at 2012-12-27T09:55:06-08:00
Remove comment that should have been removed. Pull request #3 didn't
seem to merge this correctly?
- - - - -
b8ab518c by Raymond Toy at 2012-12-27T10:27:04-08:00
Turn off scheduler; update some dependency information.
- - - - -
945fa74c by Raymond Toy at 2012-12-27T14:11:35-08:00
Merge branch 'arm-rtoy-add-insts' into arm-rtoy-add-macros
Conflicts:
src/compiler/arm/vm.lisp
- - - - -
1fc71290 by Raymond Toy at 2012-12-27T14:12:41-08:00
Merge branch 'master' into arm-rtoy-add-insts
Conflicts:
src/compiler/arm/vm.lisp
- - - - -
d29d214c by Raymond Toy at 2012-12-27T14:13:17-08:00
Merge branch 'arm-rtoy-add-insts' into arm-rtoy-add-macros
- - - - -
fc59e148 by Raymond Toy at 2012-12-27T14:14:18-08:00
Initial checkin of sparc version.
- - - - -
04f86bea by Raymond Toy at 2012-12-29T09:40:26-08:00
Add macros.lisp.
- - - - -
411349a4 by Raymond Toy at 2012-12-29T10:51:39-08:00
Fix according to review comments.
- - - - -
53920aff by rtoy at 2012-12-29T10:56:20-08:00
Merged in arm-rtoy-add-parms (pull request #5: Update parms for ARM)
- - - - -
2da27b79 by Raymond Toy at 2012-12-29T10:59:39-08:00
Merge branch 'master' into arm-rtoy-add-insts
Conflicts:
src/compiler/arm/parms.lisp
- - - - -
ecf2f3b6 by Raymond Toy at 2012-12-29T11:21:48-08:00
- - - - -
68acb9cb by Raymond Toy at 2012-12-29T11:24:24-08:00
Update to match current master version.
- - - - -
a32baf9f by Raymond Toy at 2012-12-29T11:30:23-08:00
Clean up.
- - - - -
9e74c8a9 by Raymond Toy at 2012-12-29T11:32:37-08:00
More minor clean ups.
- - - - -
2a4507cd by Raymond Toy at 2012-12-30T08:54:32-08:00
Merge branch 'arm-rtoy-add-insts' into arm-rtoy-add-macros
Conflicts:
src/compiler/arm/macros.lisp
src/compiler/arm/parms.lisp
- - - - -
37e82709 by Raymond Toy at 2012-12-30T08:56:48-08:00
Default condition value in INST-CONDITION-CODE was wrong.
- - - - -
9e680d01 by Raymond Toy at 2012-12-30T08:57:05-08:00
Merge branch 'arm-rtoy-add-insts' into arm-rtoy-add-macros
- - - - -
d70e634a by Raymond Toy at 2012-12-30T09:15:32-08:00
Fix typo, remove long-float-digits and exports for long-float stuff.
- - - - -
79b7b1c2 by Raymond Toy at 2012-12-30T10:17:55-08:00
Add missing closing paren, get rid of long-float-digits and exported
long-float symbols.
- - - - -
6bab48f2 by rtoy at 2012-12-30T10:20:41-08:00
Merged in arm-rtoy-fix-parms (pull request #7: Fix typo and remove more long-float stuff)
- - - - -
7d740040 by Raymond Toy at 2012-12-30T10:25:52-08:00
Merge branch 'master' into arm-rtoy-add-macros
- - - - -
85495f92 by Raymond Toy at 2012-12-30T10:29:19-08:00
Fix some comments; add FIXME notes.
- - - - -
8b6db912 by Raymond Toy at 2013-01-05T10:18:16-08:00
Merge branch 'master' into arm-rtoy-add-insts
- - - - -
4feb366c by Raymond Toy at 2013-01-05T20:55:36-08:00
o Fix according to review.
o EMIT-FORMAT-VFP-2-ARG had too few entries. Update all uses of this
emitter too.
o FORMAT-VFP-2-ARG was missing (byte 3 25).
o VMOV of ARM core registers was missing the cond field in the
emitter.
o FORMAT-VFP-FPSCR was missing (byte 3 25). Update users
o VMRS was missing an arg in the emitter.
- - - - -
eb15c0f8 by Raymond Toy at 2013-01-05T21:12:23-08:00
Fix SC stuff VMOV (for moving between ARM and FP regs).
- - - - -
ec6e56f4 by Raymond Toy at 2013-01-05T21:16:03-08:00
Fix according to review.
- - - - -
fc11723a by Raymond Toy at 2013-01-11T23:16:33-08:00
Update from review comments. More to come.
- - - - -
69b41900 by Raymond Toy at 2013-01-11T23:18:49-08:00
Forgot the cond field for VMRS and VMSR.
- - - - -
dda21976 by Raymond Toy at 2013-01-12T07:46:20-08:00
More cleanup from review.
- - - - -
c275c08d by Raymond Toy at 2013-01-13T16:29:10-08:00
More updates from review:
o Rename DEFEINE-DATA-PROC
o Split data processing instructions to include two separate
instructions: the basic inst and the one that sets the flags.
o Define new function to convert the condition flag to the appropriate
code, with error checking.
- - - - -
aa5bbd81 by Raymond Toy at 2013-01-13T16:55:58-08:00
Move body of emitter of define-one-data-proc-inst to its own function.
- - - - -
a5163aad by Raymond Toy at 2013-01-13T17:11:18-08:00
o Use EMIT-DATA-PROC-FORMAT in more places
o Update it to handle the case where src1 is 0.
- - - - -
faf10b2d by Raymond Toy at 2013-01-13T17:19:50-08:00
o Need to define src1 as a reg type to disassemble compare
instructions correctly.
o Update EMIT-DATA-PROC-FORMAT to handle the case where dst should be
0 instead of a tn.
- - - - -
1662caeb by Raymond Toy at 2013-01-13T17:22:29-08:00
Set opcode width to 8; 16 is too long for most instructions.
- - - - -
ac88e2aa by Raymond Toy at 2013-01-13T21:43:11-08:00
Add closing paren that was missing.
- - - - -
5058f793 by Raymond Toy at 2013-01-13T22:30:51-08:00
More cleanups to have separate instruction definitions for one with no
setting of flags and one with.
- - - - -
e6ef05f6 by Raymond Toy at 2013-01-13T22:47:43-08:00
Fix disasembly for umull and other two-output multipliers. The
registers were printed in the wrong order.
- - - - -
176e0b86 by Raymond Toy at 2013-01-13T22:57:44-08:00
o Remove another use of inst-condition-code
o NOP instruction was not printing out the cond field.
- - - - -
1b49932b by Raymond Toy at 2013-01-13T23:01:39-08:00
Set opcode column width to 9 for umullsne, and similar.
- - - - -
484d7ba7 by Raymond Toy at 2013-01-13T23:05:37-08:00
Test code for disassembler.
- - - - -
cecddf89 by Raymond Toy at 2013-01-13T23:08:38-08:00
Add comments.
- - - - -
c3adadda by Raymond Toy at 2013-01-13T23:35:38-08:00
Add docstrings for make-shift and make-ea.
- - - - -
65ced8b1 by Raymond Toy at 2013-01-13T23:48:32-08:00
Fix typos introduced when changing :post-indexed to :indexed.
- - - - -
ec262f69 by Raymond Toy at 2013-01-14T20:18:54-08:00
More cleanups.
o Replace INST-CONDITION-CODE with CONDITION-CODE-ENCODING and remove
that function.
o Remove INST-SET-FLAGS and fix up one last usage of it.
o Rename ENCODE-SHIFT to SHIFT-TYPE-ENCODING to match
CONDITION-CODE-ENCODING.
- - - - -
3bb27c1d by Raymond Toy at 2013-01-26T09:23:47-08:00
Update according to review comments.
- - - - -
d582ce46 by Raymond Toy at 2013-01-29T22:08:33-08:00
Update according to review
insts.lisp:
o Update according to review.
o Fix some bugs in some instructions
test-disassem.lisp:
o Update some disassembly tests to include the fact that we now have
separate <foo> and <foo>s instructions.
- - - - -
1431676e by rtoy at 2013-01-30T18:45:32-08:00
Merged in arm-rtoy-add-insts (pull request #6)
Add ARM instructions, cross-compile script, and a simple test program for the disassembler.
- - - - -
602b676b by Raymond Toy at 2013-01-30T22:48:12-08:00
Fix up FP insts that were postponed.
arm/insts.lisp:
o Fix up FP insts
o Correct the printer for the VMOV.F32 and VMOV.F64 instructions.
arm/test-disassem.lisp:
o Add tests for the VMOV.F32 and VMOV.F64 instructions.
- - - - -
d61a7e3a by Raymond Toy at 2013-02-22T19:05:10-08:00
* Fix type issue in MAKE-SHIFT: SHIFT TYPE can also be :rrx.
* Change DEFINE-VFP-3-INST not to need inst-name. Derive the type
from the types of the args.
- - - - -
c357f113 by Raymond Toy at 2013-02-22T21:11:18-08:00
Simplify instruction definitions for vneg and vcmp and friends. These
instructions now figure out the appropriate bits from the types of the
registers.
Also change vcvt instructions to have their own macro.
- - - - -
9e49e533 by Raymond Toy at 2013-02-22T21:15:40-08:00
Oops. Accidentally duplicated define-vfp-3-insts. Remove it.
- - - - -
998cb8eb by Raymond Toy at 2013-02-22T22:55:35-08:00
Remove unused stuff:
* Remove opa1 and &optional doublep from define-vfp-3-inst.
* Remove opc4 from define-vfp-2-inst.
* Fix typo in default printer and print name in define-vcvt-inst
* Remove opc3 from define-vfp-cmp-inst.
- - - - -
372d5db3 by Raymond Toy at 2013-02-22T22:55:59-08:00
Add test pattern for vadd.
- - - - -
7f703dc1 by Raymond Toy at 2013-02-22T22:59:04-08:00
Fix typo.
- - - - -
3164b75d by Raymond Toy at 2013-02-24T08:45:52-08:00
Fix according to review comments.
* Fix indentation and whitespace issues.
* Fix mistake in load/store printer where the address was printed as
[rn#+off] instead of [rn, #+off]
* Change define-fp-load/store-inst to derive the instruction size from
the type of dst tn.
- - - - -
66f81619 by Raymond Toy at 2013-02-24T08:46:17-08:00
Add some tests for VLDR and VSTR.
- - - - -
57765403 by Raymond Toy at 2013-02-25T19:15:14-08:00
Cleanup some indentation and use backquotes everywhere as needed.
- - - - -
2e9fdb18 by Raymond Toy at 2013-02-25T21:03:00-08:00
Unify the VMOV variants into one instruction.
- - - - -
6cbe4f68 by Raymond Toy at 2013-02-25T21:03:20-08:00
Add test for moving 2 ARM regs to/from a double-precision reg.
- - - - -
1ad77293 by Raymond Toy at 2013-02-27T19:24:16-08:00
Cleanup according to review comments.
Also removed the redundant op0 field from
format-6-vfp-vmov-core-double. It should have been derived from
format-base. The printers were updated to use opb0 instead op0.
- - - - -
c94fda4f by rtoy at 2013-03-01T18:07:21-08:00
Merged in arm-rtoy-fixup-fp-insts (pull request #8)
Fix up FP insts that were postponed.
- - - - -
d9d73df3 by Raymond Toy at 2013-03-01T18:19:12-08:00
Merge branch 'master' into arm-rtoy-add-macros
- - - - -
ea6b4af7 by Raymond Toy at 2013-07-19T19:26:41-07:00
Update according to Robert's review comments.
- - - - -
101e57e5 by Raymond Toy at 2013-07-19T19:28:35-07:00
Replace 3 with (1- vm:word-bytes)
- - - - -
28da61ac by Raymond Toy at 2013-07-19T19:31:34-07:00
Initial version from sparc.
- - - - -
66714196 by Raymond Toy at 2013-07-19T19:47:48-07:00
Merge branch 'arm-rtoy-add-macros' into arm-rtoy-add-support
- - - - -
f03794c8 by Raymond Toy at 2013-07-19T19:54:56-07:00
Dummy stub implementation generating an error for everything.
- - - - -
517a3f11 by Raymond Toy at 2013-07-19T19:57:58-07:00
Merge tag 'snapshot-2013-07' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl into arm-rtoy-sync-2013-07
Snapshot 2013-07
- - - - -
eb996427 by rtoy at 2013-07-19T20:05:01-07:00
Merged in arm-rtoy-sync-2013-07 (pull request #10)
Sync ARM code with upstream cmucl snapshot 2013-07
- - - - -
4067106d by Raymond Toy at 2013-07-22T20:40:26-07:00
Add FIXME for Load-Stack-TN.
- - - - -
3f2fc5af by Raymond Toy at 2013-07-29T22:11:11-07:00
Update according to review comments.
- - - - -
63ee0fd3 by rtoy at 2013-08-04T09:09:29-07:00
Merged in arm-rtoy-add-macros (pull request #9)
Add macros.lisp, based on the sparc version
- - - - -
6b195191 by Raymond Toy at 2013-08-04T09:21:47-07:00
Merge branch 'master' into arm-rtoy-add-support
- - - - -
1475803d by Raymond Toy at 2013-08-06T21:05:48-07:00
Fix package.
- - - - -
5a5e0aac by Raymond Toy at 2013-08-07T19:45:12-07:00
Initial version, copied from sparc.
- - - - -
968494cd by Raymond Toy at 2013-08-07T20:13:32-07:00
Oops. ARM's move instruction is called "mov", not "move".
- - - - -
3207c38b by Raymond Toy at 2013-08-07T20:14:05-07:00
Add some instructions for dumping data and header objects that we
didn't implement earlier.
- - - - -
0d82ed7e by Raymond Toy at 2013-08-07T20:14:53-07:00
Implement for ARM, but many VOPs signal errors. Only the most obvious
VOPs are implemented.
- - - - -
542af328 by Raymond Toy at 2013-08-08T20:35:23-07:00
o Fix typo move->mov
o Add not-implemented pseudo-instruction to cause a halt trap.
- - - - -
6ac12821 by Raymond Toy at 2013-08-08T20:35:40-07:00
Use not-implemented.
- - - - -
09685ec3 by Raymond Toy at 2013-08-08T20:38:13-07:00
Merge branch 'arm-rtoy-add-support' into arm-rtoy-add-move
- - - - -
b9f8ab45 by Raymond Toy at 2013-08-08T20:41:10-07:00
o Use NOT-IMPLEMENTED inst instead of ERROR.
o Remove SPARC stuff
- - - - -
cb6769f6 by Raymond Toy at 2013-08-09T19:55:12-07:00
Remove bodies of vops which aren't implemented.
- - - - -
057521fe by Raymond Toy at 2013-08-09T19:59:15-07:00
Fix typo: missing closing paren.
- - - - -
64c16ef9 by Raymond Toy at 2013-08-09T20:02:40-07:00
Fix another typo in :type arg of a structure slot.
- - - - -
27a1fb94 by Raymond Toy at 2013-08-09T20:13:38-07:00
Initial version, based on sparc/float.lisp
- - - - -
370c1525 by Raymond Toy at 2013-08-09T21:21:00-07:00
Fix some bugs
o Reindent def-load/store-word nicely
o In ALLOCATION, make sure instructions have three args; the ARM port
doesn't support two-arg instructions so both source args are needed.
o In WITH-FIXED-ALLOCATION, we need to give PSEUDO-ATOMIC a temp reg.
o Assert that temp-tn is always given in PSEUDO-ATOMIC because we
always need a temp reg.
- - - - -
dcfe1d27 by Raymond Toy at 2013-08-09T21:22:42-07:00
Fix some bugs.
o The compare instructions don't have a dst arg, so remove it.
o Fix typo in the declaration of the type of src. We wrote dst, not
src as it should be.
- - - - -
a2e14443 by Raymond Toy at 2013-08-09T21:23:13-07:00
First cut at an ARM implementation. Not yet finished with all the
VOPS yet.
- - - - -
c7a90762 by Raymond Toy at 2013-08-10T07:29:02-07:00
Disable :complex-fp-vops on ARM for now.
- - - - -
fb6f5f57 by Raymond Toy at 2013-08-10T07:29:56-07:00
Implemeent more VOPS or make them not-implemented. Long-float support
ripped out.
- - - - -
63101b94 by Raymond Toy at 2013-08-10T07:51:02-07:00
Remove misplaced extra closing paren.
- - - - -
056c55bc by rtoy at 2013-08-20T19:44:36-07:00
Merged in arm-rtoy-add-support (pull request #11)
Add assembly/support.lisp, based on sparc
- - - - -
398717a8 by rtoy at 2013-08-20T20:03:22-07:00
Merged in arm-rtoy-add-move (pull request #12)
Add arm/move.lisp, based on sparc
- - - - -
b0ad8945 by rtoy at 2013-08-20T20:12:09-07:00
Merged in arm-rtoy-add-support (pull request #15)
Merge pull request #12 to master
- - - - -
51bf6c91 by Raymond Toy at 2013-08-22T19:30:41-07:00
Patch from the arm-rtoy-add-sap branch used in pull request #14, but
only includes sap.lisp, since that branch was based off of the float
branch.
- - - - -
b70f5ed8 by rtoy at 2013-08-22T19:35:23-07:00
Merged in arm-rtoy-add-sap-2 (pull request #16)
Implement sap.lisp (again)
- - - - -
801ee707 by Raymond Toy at 2013-08-22T19:43:13-07:00
Update according to review comments.
- - - - -
fca696d1 by Raymond Toy at 2013-08-24T08:54:38-07:00
Change how ldr/str/vldr/vstr instructions are handled using new
approach. MAKE-EA is gone.
* insts.lisp
* Replace old MAKE-EA function and structures with PRE-INDEX,
POST-INDEX, and MAKE-OP2.
* Fix a couple of errors in vldr/vstr:
* Addressing options are more limited than ldr
* The offset is now explicit, and is checked for valid values.
* macros.lisp:
* Fix some errors in the instructions because all 3 args are needed
for three-arg instructions.
* Update uses of MAKE-EA.
* The or instruction is ORR, not OR.
* sap.lisp:
* Update uses of MAKE-EA.
- - - - -
31272579 by Raymond Toy at 2013-08-29T20:49:29-07:00
More fixups:
o Fix up definitions for compare instructions.
o Make load/store-extra-inst behave the same as load/store
instructions.
o Fix typo in load/store.
- - - - -
94225cfb by Raymond Toy at 2013-08-29T21:37:50-07:00
More fixups:
o It's emit-format-0-reg-shifted, not emit-format-0-reg-shift
o It's src1, not imm16.
o It's emit-format-0-mul, not emit-format-mul.
o In load/store-extra-inst, make the index 8 bits, not 12. We don't
currently support the imm12 type.
o For load/store-inst, clean up implementation a bit
o Fix typo in udf inst: segment, not eegment.
o Fix typo: emit-formt-0-msr -> emit-format-0-msr.
o Fix typo: format-vfp-3-arg -> emit-format-vfp-3-arg
o Fix quoting in define-vcvt-inst macro.
o It's dst-or-src, not dst-or-src-or-cond.
- - - - -
df872928 by Raymond Toy at 2013-08-29T21:43:25-07:00
Fix more typos:
o indexing-mode-post-indexed -> indexing-mode-post-index
o encooding -> encoding
- - - - -
205dcae8 by Raymond Toy at 2013-08-29T21:53:01-07:00
More fixes:
o Fix typo: reg -> tn
o Fix typo: opts -> cond
o Fix typo: emit-branch -> emit-branch-imm
o Add emit-header-data
- - - - -
e3615776 by Raymond Toy at 2013-08-30T20:27:03-07:00
Fix Issue #7. Handle moving an immediate float value to a register.
- - - - -
3f2673bd by Raymond Toy at 2013-08-30T20:31:57-07:00
Fix typo: emit-format-vfp-2-reg -> emit-format-vfp-2-arg.
- - - - -
153d7eff by Raymond Toy at 2013-08-30T20:38:07-07:00
Fix some typos:
o The type is called tn, not reg.
o The shift type is called shift-type, not shift-types.
- - - - -
ff2779a0 by Raymond Toy at 2013-08-30T20:50:10-07:00
Fix more typos:
o set-flags-p -> set-flags-bit.
o reg -> tn.
o There's no shift operand in the RRX instruction!
- - - - -
d2d04246 by Raymond Toy at 2013-08-30T20:58:25-07:00
Fix a bunch more cases of reg -> tn.
No more warnings or issues when compiling insts.lisp. Yay!
- - - - -
5ab6ab86 by Raymond Toy at 2013-08-30T23:52:56-07:00
ALLOCATION requires that a temp-tn be given because PSEUDO-ATOMIC
needs a temp-tn. Check for that in ALLOCATION and pass the temp-tn
through to PSEUDO-ATOMIC. Check that a temp-tn is supplied in
PSEUDO-ATOMIC.
- - - - -
73412b1c by Raymond Toy at 2013-09-01T07:48:33-07:00
Add comments.
- - - - -
4088527b by Raymond Toy at 2013-09-01T09:02:15-07:00
Import sparc/system.lisp.
- - - - -
a4734628 by Raymond Toy at 2013-09-01T09:19:41-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
d39dca5f by Raymond Toy at 2013-09-01T09:21:10-07:00
Import sparc char.lisp.
- - - - -
e9ad17fb by Raymond Toy at 2013-09-01T09:23:50-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
6199e303 by Raymond Toy at 2013-09-01T09:24:59-07:00
Import sparc memory.lisp.
- - - - -
b6ad7806 by Raymond Toy at 2013-09-01T09:28:36-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
98b4de5a by Raymond Toy at 2013-09-01T09:31:01-07:00
Import sparc static-fn.lisp.
- - - - -
61e02856 by Raymond Toy at 2013-09-01T14:20:24-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
28a028ac by Raymond Toy at 2013-09-01T14:21:24-07:00
Import sparc arith.lisp.
- - - - -
36b4d9c9 by Raymond Toy at 2013-09-01T14:22:02-07:00
Fix boilerplate.
- - - - -
c78f3fbc by Raymond Toy at 2013-09-01T15:10:47-07:00
inst.lisp:
o Add NOT instruction macro
arith.lisp:
o First cut using NOT-IMPLEMENTED almost everywhere
o Remove the zero SC class.
- - - - -
abc4824e by Raymond Toy at 2013-09-01T20:19:12-07:00
o Forgot a few more generators that need to be NOT-IMPLEMENTED.
o Update logandc1/2, logior, and logxor with correct instructions.
Comment out logorc1/2 and logeqv.
- - - - -
c50b82d4 by Raymond Toy at 2013-09-01T20:52:15-07:00
o Remove the binops that can't be done in one instruction.
o Remove sparc-v9 vops and references.
o Compile modular arith stuff in the ARM package, not C.
- - - - -
7d02809b by Raymond Toy at 2013-09-01T20:54:46-07:00
Remove modular versions of logeqv, logorc1, and logorc2 since we don't
have vops for those now.
- - - - -
287a47bd by Raymond Toy at 2013-09-01T20:58:19-07:00
Remove modular-backend versions of logeqv, logorc1, and logorc2 since
we don't have vops for those now.
- - - - -
b06b14b8 by Raymond Toy at 2013-09-01T21:00:33-07:00
Import sparc subprim.lisp.
- - - - -
2b4777a3 by Raymond Toy at 2013-09-01T21:04:49-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
b24a4af4 by Raymond Toy at 2013-09-01T21:06:00-07:00
Import sparc debug.lisp.
- - - - -
17d0afc5 by Raymond Toy at 2013-09-01T21:14:47-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
596d585a by Raymond Toy at 2013-09-01T21:16:37-07:00
Import sparc c-call.lisp.
- - - - -
329aeb42 by Raymond Toy at 2013-09-01T21:17:35-07:00
Fix boilerplate.
- - - - -
e70e996a by Raymond Toy at 2013-09-01T21:19:09-07:00
Remove long-float.
- - - - -
aadd2c52 by Raymond Toy at 2013-09-01T21:21:38-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
0741b934 by Raymond Toy at 2013-09-01T21:23:05-07:00
Import sparc cell.lisp.
- - - - -
e2cd9f4c by Raymond Toy at 2013-09-01T21:27:37-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
3f3e7570 by Raymond Toy at 2013-09-02T12:08:37-07:00
Import sparc values.lisp.
- - - - -
f3b25c83 by Raymond Toy at 2013-09-02T12:09:17-07:00
Fix boilerplate.
- - - - -
b0e6efc8 by Raymond Toy at 2013-09-02T12:11:49-07:00
Author: Raymond Toy <toy.raymond(a)gmail.com>
--- log message follows this line ---
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
459a45ab by Raymond Toy at 2013-09-02T12:13:14-07:00
Import sparc alloc.lisp.
- - - - -
e800001f by Raymond Toy at 2013-09-02T12:13:53-07:00
Fix boilerplate.
- - - - -
17f9f77f by Raymond Toy at 2013-09-02T12:18:26-07:00
Author: Raymond Toy <toy.raymond(a)gmail.com>
--- log message follows this line ---
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
eee8bf0c by Raymond Toy at 2013-09-02T12:20:27-07:00
Import sparc call.lisp.
- - - - -
86e64020 by Raymond Toy at 2013-09-02T12:21:08-07:00
Fix boilerplate.
- - - - -
30d73d8d by Raymond Toy at 2013-09-02T15:19:59-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
0a8e7a79 by Raymond Toy at 2013-09-02T15:21:04-07:00
Import sparc nlx.lisp.
- - - - -
e9d404e8 by Raymond Toy at 2013-09-02T15:21:30-07:00
Fix boilerplate.
- - - - -
daedf624 by Raymond Toy at 2013-09-04T19:53:48-07:00
Update for ARM, using NOT-IMPLEMENTED.
- - - - -
32137d15 by Raymond Toy at 2013-09-04T20:03:54-07:00
o Fix up according to review comments.
o Add instruction macro for neg.
- - - - -
64563a09 by Raymond Toy at 2013-09-16T19:15:30-07:00
Clean up according to review comments.
- - - - -
af6b2484 by Raymond Toy at 2013-09-16T19:17:02-07:00
Merge upstream CMUCL snapshot-2013-09 into arm-rtoy-sync-2013-09
- - - - -
09ad790d by rtoy at 2013-09-16T19:20:06-07:00
Merged in arm-rtoy-sync-2013-09 (pull request #19)
Sync ARM code with upstream cmucl snapshot 2013-09
- - - - -
00b69c04 by Raymond Toy at 2013-09-16T19:20:45-07:00
Merge branch 'master' into arm-rtoy-change-make-ea-2
- - - - -
8030622f by rtoy at 2013-09-20T19:32:21-07:00
Merged in arm-rtoy-change-make-ea-2 (pull request #18)
Remove MAKE-EA and replace it with a new scheme, take 2
- - - - -
74e0bd71 by Raymond Toy at 2013-09-20T19:58:09-07:00
Merge branch 'arm-rtoy-add-float' into arm-rtoy-add-float-2
First cut; float.lisp unchanged so it has errors.
- - - - -
a2055982 by Raymond Toy at 2013-09-20T20:13:02-07:00
o Clean up using the new vldr/vstr instruction.
o Anything vldr/vstr that didn't have a word offset has been replaced
with NOT-IMPLEMENTED.
- - - - -
3fcab5fc by Raymond Toy at 2013-09-30T20:01:30-07:00
Update according to review.
- - - - -
3f461e7e by Raymond Toy at 2013-09-30T20:02:16-07:00
Merge /Volumes/share2/src/clnet/cmucl/release-20e into arm-rtoy-sync-to-20e
- - - - -
acf14931 by rtoy at 2013-09-30T20:04:28-07:00
Merged in arm-rtoy-sync-to-20e (pull request #21)
Sync ARM code with upstream cmucl 20e
- - - - -
8abcd920 by Raymond Toy at 2013-09-30T20:05:12-07:00
Merge branch 'master' into arm-rtoy-add-float-2
- - - - -
17500b2f by Raymond Toy at 2013-09-30T20:10:45-07:00
Oops. Replace move-long-reg with move-double-reg in a couple of
places.
- - - - -
83cc8605 by rtoy at 2013-09-30T21:45:19-07:00
Merged in arm-rtoy-add-float-2 (pull request #20)
Add arm/float.lisp, take 2
- - - - -
ef625a96 by Raymond Toy at 2013-10-01T19:27:04-07:00
Implement system.lisp
- - - - -
cade7564 by Raymond Toy at 2013-10-01T19:32:03-07:00
Merge branch 'arm-rtoy-change-make-ea-add-char' into arm-rtoy-add-char.lisp
- - - - -
132f5fde by Raymond Toy at 2013-10-01T19:36:01-07:00
Merge branch 'arm-rtoy-change-make-ea-add-memory' into arm-rtoy-add-memory.lisp
- - - - -
1843aff2 by Raymond Toy at 2013-10-01T19:41:34-07:00
Merge branch 'arm-rtoy-change-make-ea-add-arith' into arm-rtoy-add-arith.lisp
- - - - -
d8ac6f3d by Raymond Toy at 2013-10-01T19:44:03-07:00
Merge branch 'arm-rtoy-change-make-ea-add-subprim' into arm-rtoy-add-subprim.lisp
- - - - -
a30d1ccc by Raymond Toy at 2013-10-01T19:48:44-07:00
Merge branch 'arm-rtoy-change-make-ea-addstatic-fn' into arm-rtoy-add-static-fn.lisp
- - - - -
d1cfec1d by Raymond Toy at 2013-10-01T19:50:59-07:00
Merge branch 'arm-rtoy-change-make-ea-debug' into arm-rtoy-add-debug.lisp
- - - - -
0b5ec267 by Raymond Toy at 2013-10-01T20:02:04-07:00
Merge branch 'arm-rtoy-change-make-ea-c-call' into arm-rtoy-add-c-call.lisp
- - - - -
71c9f0ca by Raymond Toy at 2013-10-01T20:05:57-07:00
Remove nl1-offset.
- - - - -
af612b5c by Raymond Toy at 2013-10-02T19:22:54-07:00
Merge branch 'arm-rtoy-add-memory.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
aeda9844 by Raymond Toy at 2013-10-02T19:23:09-07:00
Merge branch 'arm-rtoy-add-arith.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
93b591ac by Raymond Toy at 2013-10-02T19:23:17-07:00
Merge branch 'arm-rtoy-add-subprim.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
fc04211b by Raymond Toy at 2013-10-02T19:23:25-07:00
Merge branch 'arm-rtoy-add-system.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
6c5058d5 by Raymond Toy at 2013-10-02T19:23:36-07:00
Merge branch 'arm-rtoy-add-static-fn.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
1319781b by Raymond Toy at 2013-10-02T19:23:42-07:00
Merge branch 'arm-rtoy-add-debug.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
f3650913 by Raymond Toy at 2013-10-02T19:23:49-07:00
Merge branch 'arm-rtoy-add-c-call.lisp' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
f5314cc7 by Raymond Toy at 2013-10-02T19:52:02-07:00
Merge branch 'arm-rtoy-change-make-ea-add-alloc' into arm-rtoy-add-more
- - - - -
cab409a6 by Raymond Toy at 2013-10-02T19:52:15-07:00
Merge branch 'arm-rtoy-change-make-ea-add-call' into arm-rtoy-add-more
- - - - -
15eaa054 by Raymond Toy at 2013-10-02T19:52:31-07:00
Merge branch 'arm-rtoy-change-make-ea-add-cell' into arm-rtoy-add-more
- - - - -
c4dce9ec by Raymond Toy at 2013-10-02T19:52:51-07:00
Merge branch 'arm-rtoy-change-make-ea-add-nlx' into arm-rtoy-add-more
- - - - -
3465a2ae by Raymond Toy at 2013-10-02T19:52:57-07:00
Merge branch 'arm-rtoy-change-make-ea-add-values' into arm-rtoy-add-more
- - - - -
b72c1a48 by Raymond Toy at 2013-10-02T20:24:08-07:00
C callbacks aren't supported.
- - - - -
d802e48b by Raymond Toy at 2013-10-02T20:26:34-07:00
Import from sparc: emit-compute-inst, compute-code-from-lra.
- - - - -
b3e99418 by Raymond Toy at 2013-10-02T20:48:49-07:00
Make emit-compute-inst and compute-code-from-lra using
NOT-IMPLEMENTED.
- - - - -
c00875a5 by Raymond Toy at 2013-10-02T20:49:44-07:00
o Replace cname with lexenv.
o Remove a3-a5 offset.
o Remove nl1-offset.
o Remove nl1-nl3 offset.
- - - - -
190c3780 by rtoy at 2013-10-03T19:41:16-07:00
Merged in arm-rtoy-add-more (pull request #31)
Add alloc.lisp, call.lisp, cell.lisp, nlx.lisp, values.lisp.
- - - - -
88998679 by Raymond Toy at 2013-10-03T19:42:06-07:00
Merge branch 'master' into arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call
- - - - -
6d872a6a by rtoy at 2013-10-07T18:50:22-07:00
Merged in arm-rtoy-add-char-mem-arit-subprim-system-static-fn-debug-c-call (pull request #30)
Pull requests 22-29 all in one
- - - - -
1d1e4fba by Raymond Toy at 2013-10-07T18:57:25-07:00
Copy sparc version.
- - - - -
04130c40 by Raymond Toy at 2013-10-07T18:58:33-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
85b95440 by Raymond Toy at 2013-10-07T18:58:53-07:00
Copy sparc version.
- - - - -
d5ee77af by Raymond Toy at 2013-10-07T19:06:24-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
0992f0cc by Raymond Toy at 2013-10-07T19:06:34-07:00
Copy sparc version.
- - - - -
43b21e98 by Raymond Toy at 2013-10-07T19:07:56-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
942e871a by Raymond Toy at 2013-10-07T19:08:04-07:00
Copy sparc version.
- - - - -
fa6b5167 by Raymond Toy at 2013-10-07T19:13:11-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
922a6ddf by Raymond Toy at 2013-10-07T19:15:21-07:00
ARM doesn't have a zero SC.
- - - - -
21c321dd by Raymond Toy at 2013-10-07T19:32:26-07:00
Copy sparc version.
- - - - -
711646b5 by Raymond Toy at 2013-10-07T19:36:10-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
3b5af2be by Raymond Toy at 2013-10-07T19:36:30-07:00
Copy sparc version.
- - - - -
464ad2e0 by Raymond Toy at 2013-10-07T19:37:52-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
032b9630 by Raymond Toy at 2013-10-07T19:38:05-07:00
Copy sparc version.
- - - - -
dfab4945 by Raymond Toy at 2013-10-07T19:41:32-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
619b178b by Raymond Toy at 2013-10-07T19:41:37-07:00
Copy sparc version.
- - - - -
9ee11ea6 by Raymond Toy at 2013-10-07T19:48:12-07:00
Convert to ARM, using NOT-IMPLEMENTED.
- - - - -
7b1dd1b4 by Raymond Toy at 2013-10-07T20:21:07-07:00
Rip out non-existent non-descriptor regs.
- - - - -
f3b81939 by Raymond Toy at 2013-10-07T20:21:15-07:00
Rip out non-existent non-descriptor regs.
- - - - -
5ecdb450 by Raymond Toy at 2013-10-07T20:22:08-07:00
o Rip out non-existent non-descriptor regs.
o Comment out some assembly routines because I don't know how to
implement them even with NOT-IMPLEMENTED. See comments.
- - - - -
8b0841c4 by rtoy at 2013-10-13T17:18:21-07:00
Merged in arm-rtoy-add-rest-assembly (pull request #33)
Add rest of the files in src/assembly/arm
- - - - -
3c03ee48 by Raymond Toy at 2013-10-13T17:21:47-07:00
Update according to review:
o Remove #-unicode and #+long-float.
- - - - -
f6267f93 by rtoy at 2013-10-13T17:23:59-07:00
Merged in arm-rtoy-add-rest-compiler (pull request #32)
Add rest of the files in src/compiler
- - - - -
4f669928 by Raymond Toy at 2013-10-13T17:24:23-07:00
Update according to review:
o Remove #-unicode and #+long-float.
- - - - -
3c913f24 by rtoy at 2013-10-13T17:27:36-07:00
Merged in arm-rtoy-add-rest-compiler (pull request #34)
Add rest of the files in src/compiler
- - - - -
503a73cc by Raymond Toy at 2013-10-13T18:04:11-07:00
Comment out fast-unary-ftruncate and double-float-bits. These are not
yet supported in the rest of the code for ARM.
- - - - -
8339da19 by Raymond Toy at 2013-10-13T18:04:44-07:00
Comment out symbol-hash and %set-symbol-hash. These are not yet
supported in the rest of the code for ARM.
- - - - -
c3d96db9 by Raymond Toy at 2013-10-14T18:47:54-07:00
Fix cross-compile issues. We can now build and load the
cross-compiler.
assembly/arm/array.lisp:
o Oops. There is no a3 register. Randomly rename to a2 until we
implement this.
compiler/arm/call.lisp:
o ARM doesn't support the clear-memory option when allocating a frame,
so comment that out from the vop info args.
tools/cross-scripts/cross-x86-arm.lisp:
o Need to rename the cross-compiler package (X86) to OLD-X86. Forgot
to do that initially.
o Export the OLD-X86 names (instead of X86, which no longer exists
since it was renamed).
tools/worldcom.lisp:
o Oops. Need to add case for ARM to compile the files from the
assembly/arm directory.
- - - - -
41b3c05d by rtoy at 2013-10-19T08:59:11-07:00
Merged in arm-rtoy-cross-compile-fix (pull request #35)
Fixes to get cross-compiler to build and load.
- - - - -
ecdc1eb0 by Raymond Toy at 2013-10-20T09:34:33-07:00
Comment out the extra descriptor temps in DEFINE-FULL-CALL. This
causes a packing error because too many descriptors are used.
- - - - -
e62f14bd by Raymond Toy at 2013-10-20T09:35:16-07:00
ldr/str instruction was not handling the case with an immediate offset
value. Add support.
- - - - -
789a535c by Raymond Toy at 2013-10-21T09:35:40-07:00
It's lisp::*allocation-pointer*, not arm::*allocation-pointer*.
- - - - -
8f234e67 by Raymond Toy at 2013-10-21T10:32:56-07:00
Just use a normal tn for nfp-tn. (Not sure if this is right or not,
but we don't have a dedicated nfp register on ARM.)
- - - - -
d9594f54 by Raymond Toy at 2013-10-21T10:33:19-07:00
Assembly works, if loaded up late enough.
- - - - -
2a35f8d9 by Raymond Toy at 2013-11-06T18:04:49-08:00
Allow interactive mode where output goes to the screen and errors stop
the compilation.
- - - - -
56bc20ea by Raymond Toy at 2013-11-06T18:12:34-08:00
Merge branch 'master' of /Volumes/share2/src/clnet/cmucl/dev/cmucl into rtoy-merge-2013-11
- - - - -
12654b5e by rtoy at 2013-11-06T18:30:08-08:00
Merged in arm-rtoy-merge-upstream-2013-11 (pull request #37)
Merge cmucl 2013-11
- - - - -
fe5d524f by Raymond Toy at 2013-11-06T19:42:10-08:00
More cross-compiler fixes
o Move macro NOT-IMPLEMENTED from macros.lisp to insts.lisp because
macros.lisp is loaded AFTER insts.lisp. Need the macro to be
defined because we use NOT-IMPLEMENTED in a few places.
o Can't use NOT-IMPLEMENTED in COMPUTE-CODE-FROM-LRA because we need
an emitter function, not an assembly instruction. Blindly use the
sparc version.
- - - - -
a456baaf by Raymond Toy at 2013-11-16T14:13:33-08:00
Fix typo.
- - - - -
ca33c670 by Raymond Toy at 2013-11-16T14:24:31-08:00
Update according to review
o New make-nfp-tn
o Remove commented-out code.
- - - - -
515c556b by Raymond Toy at 2013-11-20T20:25:02-08:00
ignore-me-sc-number doesn't exist. Use something else for now.
- - - - -
f9a7df9c by Raymond Toy at 2013-11-20T20:25:53-08:00
sap-ref-single and sap-ref-double has to be implemented in a different
way because vldr is different from ldr.
- - - - -
e292d8b9 by Raymond Toy at 2013-11-27T12:00:45-08:00
Fix up according to review.
insts.lisp:
o Add type ARM-SIGNED-OFFSET.
o Use it.
o Make indentation consistent in a few places.
sap.lisp:
o Use ARM-SIGNED-OFFSET
- - - - -
8d9329ed by rtoy at 2013-11-27T19:06:14-08:00
Merged in arm-rtoy-xcompile-1 (pull request #36)
Cross-compile step 1
- - - - -
c7a5c65b by Raymond Toy at 2013-11-30T18:12:48-08:00
Add comment of where we can stop to play with the target compiler.
- - - - -
c5584157 by Raymond Toy at 2013-11-30T18:14:26-08:00
Add constant NUMBER-STACK-DISPLACEMENT, for consistency with sparc.
Correct the value or remove it later if not needed.
- - - - -
b1d9925b by Raymond Toy at 2013-11-30T18:15:30-08:00
Implement COMPUTE-CODE-FROM-FN, based on sparc version.
- - - - -
95ce82dd by Raymond Toy at 2013-11-30T18:15:48-08:00
Implement IF-EQ vop, based on sparc version.
- - - - -
46b4694b by Raymond Toy at 2013-11-30T18:16:29-08:00
Implement more of the guts of XEP-ALLOCATE-FRAME.
- - - - -
04e27070 by Raymond Toy at 2013-12-02T22:10:57-08:00
Fix many issues and implement a few more missing pieces.
The fixes:
o Forgot to define a printer for the reg MOV case.
o Use the correct values for the emitter for the register MOV inst.
o Comment out the flex-operand case. We don't support that.
o The split-imm16-printer was not printing the imm16 value out
correctly.
o Add some comments to the format-2-immed-printer to make it clearer
what's happening. (We had the U and W values backwards.)
o Rename DECODE-INDEXING-MODE to DECODE-IMMEDIATE-INDEXING-MODE to
make it clearer. Add some comments too.
o Add comments to DECODE-INDEXING-AND-OPTIONS.
o Fix DEFINE-LOAD/STORE-INST.
o We were not generating the correct instruction for stores.
o Need to compute the reg encoding for the indexing-mode register.
o Better implementation of NOT-IMPLEMENTED that takes an arg saves
that to r0 so the trap handler can figure out what VOP is not
implemented.
The new stuff:
o Implement EMIT-COMPUTE-INST better, and always use the worst-case
for now.
- - - - -
eb66550e by Raymond Toy at 2013-12-02T22:11:30-08:00
Add defregtn for a0 so NOT-IMPLEMENTED can access it easily.
- - - - -
880bf853 by Raymond Toy at 2013-12-02T22:12:23-08:00
In the generator, define a macro VOP-NOT-IMPLEMENTED that calls
NOT-IMPLEMENTED with the vop name (as a symbol).
- - - - -
b018f856 by Raymond Toy at 2013-12-02T22:13:00-08:00
Don't need to load insts.lisp anymore since we're farther along. Just
comment it out.
- - - - -
8036914f by Raymond Toy at 2013-12-02T22:15:36-08:00
Implement more.
o In XEP-ALLOCATE-FRAME use the new VOP-NOT-IMPLEMENTED.
o Implement VERIFY-ARGUMENT-COUNT.
- - - - -
fe4ada4a by Raymond Toy at 2013-12-03T19:59:42-08:00
Add macrolet VOP-NOT-IMPLEMENTED to the generator so that VOPs can
call VOP-NOT-IMPLEMENTED to get the VOP name. VOP-NOT-IMPLEMENTED
calls NOT-IMPLEMENTED with the VOP name.
- - - - -
1954acf5 by Raymond Toy at 2013-12-03T20:00:23-08:00
Replace NOT-IMPLEMENTED with VOP-NOT-IMPLEMENTED to pass the VOP name
to NOT-IMPLEMENTED.
- - - - -
22e1a70a by Raymond Toy at 2013-12-23T12:08:55-08:00
Rename VOP-NOT-IMPLEMENTED to EMIT-NOT-IMPLEMENTED. But still calls
NOT-IMPLEMENTED.
Update all uses of VOP-NOT-IMPLEMENTED accordingly.
- - - - -
a98ae3a5 by rtoy at 2013-12-23T12:49:54-08:00
Merged in arm-rtoy-compile-1 (pull request #38)
Compile step 1
- - - - -
01a68888 by Raymond Toy at 2013-12-23T15:46:48-08:00
Fix typo. The saves should not be in the assembl block.
(Found this when I tried compiling this on x86.)
- - - - -
e2dc029b by rtoy at 2013-12-23T15:48:43-08:00
Merged in rtoy-fix-emit-not-implemented (pull request #39)
Fix typo. The saves should not be in the assembly block.
- - - - -
8f8b4575 by Raymond Toy at 2014-03-16T09:29:05-07:00
Merge tag 'snapshot-2014-03' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl into rtoy-sync-snapshot-2014-03
Snapshot 2014-03
- - - - -
064bdbb9 by rtoy at 2014-03-16T09:34:37-07:00
Merged in rtoy-sync-snapshot-2014-03 (pull request #40)
Sync to upstream snapshot-2014-03
- - - - -
57033744 by Raymond Toy at 2014-03-17T19:12:30-07:00
Implement EMIT-NOT-IMPLEMENTED for assembly-routines and for
vm-support-routines.
- - - - -
bdd90b05 by Raymond Toy at 2014-03-17T19:12:55-07:00
There's no cname; use lexenv instead.
- - - - -
3450284f by Raymond Toy at 2014-03-17T19:13:39-07:00
Missed this before; it's EMIT-NOT-IMPLEMENTED, not
VOP-NOT-IMPLEMENTED.
- - - - -
977521f8 by rtoy at 2014-03-18T20:38:33-07:00
Merged in arm-rtoy-more-emit-not-implemented (pull request #41)
More EMIT-NOT-IMPLEMENTED fixes and a few typos
- - - - -
2e6113bb by Raymond Toy at 2014-05-14T19:47:53-07:00
Use register layout assignment 3.
compiler/arm/vm.lisp:
o Use the register assignment 3 from the design notes doc.
compiler/arm/c-call.lisp:
o Use csp-offset instead of nsp-offset, which doesn't exist anymore.
o Remove reference to cfunc, which doesn't exist anymore.
compiler/arm/insts.lisp:
o Use csp-tn instead of nsp-tn for emit-not-implemented.
compiler/arm/parms.lisp:
o Add *c-stack-pointer* to hold the real C stack pointer since we're
using the ARM SP (r13) register as the Lisp stack pointer.
o Remove the static FP constants. ARM can load these as immediates.
compiler/arm/print.lisp:
o Remove reference to cfunc, which doesn't exist anymore.
- - - - -
09cede35 by Raymond Toy at 2014-05-17T11:49:33-07:00
Update according to review.
- - - - -
3e2b5120 by Raymond Toy at 2014-05-18T08:06:44-07:00
Use any tn for the number stack tn.
- - - - -
764563ff by Raymond Toy at 2014-05-18T08:07:19-07:00
Remove the code that references nsp-tn. We'll have to reimplement it
ourselves later since we don't have an nsp-tn anymore.
- - - - -
24ed2af9 by rtoy at 2014-05-20T23:21:59-07:00
Merged in arm-rtoy-reg-assignments-3 (pull request #42)
Use register layout assignment 3.
- - - - -
55d42e6e by Raymond Toy at 2014-09-04T21:23:15-07:00
Merge ssh://common-lisp.net/var/git/projects/cmucl/cmucl into arm-rtoy-sync-2014-09
to sync to latest upstream code.
- - - - -
bb21c787 by rtoy at 2014-09-04T21:27:28-07:00
Merged in arm-rtoy-sync-2014-09 (pull request #43)
Sync to upstream 2014-09 sources
- - - - -
f5e661e6 by Raymond Toy at 2014-10-12T12:34:06-07:00
Merge ssh://common-lisp.net/var/git/projects/cmucl/cmucl into rtoy-sync-2014-10-12
- - - - -
758a5d9e by rtoy at 2014-10-12T12:37:27-07:00
Merged in arm-rtoy-sync-2014-10-12 (pull request #44)
Sync to upstream sources 2014-10-12
- - - - -
1327537c by Raymond Toy at 2014-12-11T19:34:14-08:00
Use the LIP register as the NFP register too.
- - - - -
083a2330 by Raymond Toy at 2014-12-11T20:43:59-08:00
Enable *debug-pack* and call lisp-conflicts when we fail to pack.
- - - - -
a80220c8 by Raymond Toy at 2014-12-11T20:44:42-08:00
Comment out temporaries in vops where the temps area used.
If the temp was targeted, remove the targeting as well.
- - - - -
bcd12ccf by Raymond Toy at 2014-12-14T14:59:22-08:00
Comment out all temporaries from VOPs when possible.
Many of these, along with the args and results of the VOP were causing
TN conflicts during compilation. It's silly to have them when most
VOPs aren't even implemented, so kill them off when possible. Also
required moving some targeting of args/results to temporaries.
- - - - -
f6c817fb by Raymond Toy at 2014-12-14T15:09:24-08:00
Remove the temps instead of commenting the out.
- - - - -
d19637f5 by Raymond Toy at 2014-12-15T22:26:19-08:00
Oops. Really remove the temps instead of conditionalize them out.
- - - - -
f8a65e40 by Raymond Toy at 2014-12-17T19:57:43-08:00
Add more comments.
- - - - -
6c2a83fd by Raymond Toy at 2014-12-17T20:05:18-08:00
Merge branch 'arm-rtoy-nfp-using-lip' into arm-rtoy-remove-vop-temps
Conflicts:
src/compiler/arm/call.lisp
- - - - -
e3dc0fa1 by Raymond Toy at 2014-12-17T20:21:05-08:00
Fix typo. There is no x arg/result/temp in the MOVE-FROM-SIGNED VOP.
- - - - -
1c22ae21 by Raymond Toy at 2014-12-17T20:21:46-08:00
Undo *debug-pack* changes.
- - - - -
b7e7d1bb by Raymond Toy at 2014-12-17T20:22:16-08:00
Address review comments and delete the #+nil'ed out code.
- - - - -
acedbc56 by Raymond Toy at 2014-12-18T23:23:20-08:00
Replace the NFP register with the static symbol LISP::*NUMBER-FRAME-POINTER*.
Update all uses of NFP to use *number-frame-pointer*; use LIP as a
temporary, when needed, to load the value of *n-f-p*.
- - - - -
7669328d by Raymond Toy at 2014-12-18T23:24:24-08:00
Add definition of lip-tn.
- - - - -
b241072e by Raymond Toy at 2014-12-18T23:24:57-08:00
Merge branch 'arm-rtoy-nfp-using-lip' into arm-rtoy-remove-vop-temps
- - - - -
44c091ce by Raymond Toy at 2014-12-20T07:47:19-08:00
Oops. *number-frame-pointer* isn't in the lisp package. Remove
package qualifier.
- - - - -
4cf1f655 by Raymond Toy at 2014-12-20T07:49:23-08:00
Merge branch 'arm-rtoy-nfp-using-lip' into arm-rtoy-remove-vop-temps
- - - - -
a58848b2 by Raymond Toy at 2014-12-20T08:00:38-08:00
Explictly declare a temp for lip instead of just using it.
- - - - -
788d683f by Raymond Toy at 2014-12-20T08:20:22-08:00
Update comment.
- - - - -
de273824 by Raymond Toy at 2014-12-20T08:21:49-08:00
Merge branch 'arm-rtoy-nfp-using-lip' into arm-rtoy-remove-vop-temps
- - - - -
f484ee6e by Raymond Toy at 2014-12-23T09:36:17-08:00
Update comment about TN usage for MAKE-NFP-TN.
- - - - -
b82c57e9 by Raymond Toy at 2014-12-24T10:08:28-08:00
Merge branch 'arm-rtoy-nfp-using-lip' into arm-rtoy-remove-vop-temps
- - - - -
e6b85310 by Raymond Toy at 2014-12-24T12:56:03-08:00
Fix typo in vm-support-routine's.
The VM support routines must return a list of the instructions.
- - - - -
e88f3b8f by rtoy at 2014-12-24T18:31:41-08:00
Merged in arm-rtoy-fix-typo-generate-call-sequence (pull request #47)
Fix typo in vm-support-routine's
- - - - -
ad6b9449 by rtoy at 2014-12-24T18:32:17-08:00
Merged in arm-rtoy-nfp-using-lip (pull request #45)
Add *number-frame-pointer* to be used as the nfp
- - - - -
bb1ea7dd by Raymond Toy at 2014-12-24T18:33:22-08:00
Merge branch 'master' into arm-rtoy-remove-vop-temps
- - - - -
7066a3e7 by rtoy at 2014-12-26T12:39:48-08:00
Merged in arm-rtoy-remove-vop-temps (pull request #46)
Remove temporaries from VOPs
- - - - -
b2266305 by Raymond Toy at 2014-12-26T12:40:42-08:00
Remove extraneous blank lines and #+nil stuff.
- - - - -
1014e01f by rtoy at 2014-12-26T12:42:28-08:00
Merged in arm-rtoy-remove-vop-temps (pull request #48)
Remove extraneous blank lines and #+nil stuff.
- - - - -
16bfc824 by Raymond Toy at 2014-12-26T13:43:37-08:00
Fix issue #17.
The load/store inst macro forgot to support the case where src2 can be
a simple register.
- - - - -
dca9060d by Raymond Toy at 2014-12-26T15:09:03-08:00
Fix issue #19: simplify disassembly for str/ldr.
If the shift type is LSL and the amount is 0, don't print anything,
since that's the default.
- - - - -
9700a5f0 by Raymond Toy at 2014-12-26T15:29:40-08:00
Set larger values for print length/level.
Use large values for *print-length*, *print-level*, and friends so
that compiler messages show more information.
- - - - -
d5ac2242 by Raymond Toy at 2014-12-27T11:14:05-08:00
Add lexenv to list of descriptor regs.
Forgot that lexenv is a descriptor reg and should be listed as
such. This Fixes issue #18.
- - - - -
605d83d8 by Raymond Toy at 2014-12-27T13:03:35-08:00
Merge branch 'arm-rtoy-deeper-print-level-length' into arm-rtoy-issue-16
- - - - -
a8371cda by rtoy at 2014-12-27T21:46:54-08:00
Merged in arm-rtoy-issue-17 (pull request #49)
Fix issue #17.
- - - - -
ed457084 by rtoy at 2014-12-27T21:47:55-08:00
Merged in arm-rtoy-issue-18 (pull request #52)
Add lexenv to list of descriptor regs.
- - - - -
31d0e2fb by Raymond Toy at 2014-12-27T21:54:52-08:00
Move the print variables to the cross-compile lisp file instead of
cross-build-world.sh.
- - - - -
a04642a3 by Raymond Toy at 2014-12-27T22:41:00-08:00
Merge branch 'master' into arm-rtoy-issue-19
- - - - -
8f6f0e6a by Raymond Toy at 2014-12-27T22:46:20-08:00
Use macrolet.
- - - - -
5cc956ee by Raymond Toy at 2014-12-28T10:34:40-08:00
Address comment 1.
- - - - -
66f5c0cb by rtoy at 2014-12-28T10:35:18-08:00
Merged in arm-rtoy-deeper-print-level-length (pull request #51)
Set larger values for print length/level.
- - - - -
e362ad3f by Raymond Toy at 2014-12-28T10:42:58-08:00
Add better comments as requested in review.
- - - - -
2fa560b3 by Raymond Toy at 2014-12-28T10:51:36-08:00
Remove temps from assembly routines.
Fixes issue #16. There was a conflict between
allocate-vector and data-vector-ref/simple-vector. Removed the other
temps from the assembly routines too, since they're not used yet.
- - - - -
63d60369 by Raymond Toy at 2014-12-28T10:51:57-08:00
Revert some changes accidentally pulled from other requests; they're
not relevant to this, but were useful for debugging this issue.
- - - - -
d532878f by Raymond Toy at 2014-12-28T11:00:52-08:00
Merge tag 'snapshot-2014-12' of /Volumes/share2/src/clnet/cmucl/dev/cmucl into arm-rtoy-sync-2014-12
Snapshot 2014-12
- - - - -
4b992b36 by rtoy at 2014-12-28T11:04:08-08:00
Merged in arm-rtoy-sync-2014-12 (pull request #54)
Sync to upstream snapshot-2014-12
- - - - -
38d54390 by Raymond Toy at 2014-12-28T11:05:29-08:00
Merge branch 'master' into arm-rtoy-issue-16
- - - - -
d28f50b2 by Raymond Toy at 2014-12-28T11:25:04-08:00
Put back the code from pull request #49 for issue 17.
- - - - -
02cd2d2e by Raymond Toy at 2014-12-28T15:29:52-08:00
Fix issue #21: Handle ldrh rt, rn, 0
We weren't correctly handling the case where the third arg was an
immediate offset.
- - - - -
4d3c42a1 by Raymond Toy at 2014-12-28T15:30:23-08:00
Add a test case for issue #21.
Add a function to disassemble the assembled result too so we can see
how it disassembles.
- - - - -
87958285 by Raymond Toy at 2014-12-28T15:34:42-08:00
Handle negative immediate values correctly for ldrh.
Add simple test for this too.
- - - - -
aa0d5bde by Raymond Toy at 2014-12-29T11:38:10-08:00
Support EMIT-NOT-IMPLEMENTED in DEF-VM-SUPPORT-ROUTINE
This fixes issue #22 by wrapping the result returned from
GENERATE-RETURN-SEQUENCE in a macrolet defining EMIT-NOT-IMPLMENTED.
- - - - -
823e60c5 by rtoy at 2014-12-29T12:07:20-08:00
Merged in arm-rtoy-issue-19 (pull request #50)
Fix issue #19: simplify disassembly for str/ldr.
- - - - -
96627929 by rtoy at 2014-12-29T12:17:06-08:00
Merged in arm-rtoy-issue-16 (pull request #53)
Remove temps from assembly routines
- - - - -
1be7fb17 by Raymond Toy at 2014-12-29T12:19:29-08:00
Merge branch 'master' into arm-rtoy-issue-21
- - - - -
c1ff7fbd by Raymond Toy at 2014-12-29T12:30:35-08:00
Address review comments.
Fix typos, clarify comments.
- - - - -
292a7f6a by Raymond Toy at 2014-12-29T14:07:33-08:00
Replace EMIT-NOT-IMPLEMENTED in RECEIVE-UNKNOWN-VALUES
Fixes issue #23. Just call NOT-IMPLEMENTED directly instead with the
appropriate symbol.
- - - - -
b4b74f9b by Raymond Toy at 2014-12-29T14:15:48-08:00
Replace EMIT-NOT-IMPLEMENTED in DEFAULT-UNKNOWN-VALUES and EMIT-MULTIPLY.
Cross compiler now builds without warnings.
- - - - -
4a0d27cc by Raymond Toy at 2014-12-29T14:52:48-08:00
Clean out armf files too.
See issue #24.
- - - - -
7356d42c by rtoy at 2014-12-29T14:57:23-08:00
Merged in arm-rtoy-issue-24 (pull request #58)
Clean out armf files too.
Fixes issue #24.
- - - - -
456d240e by Raymond Toy at 2014-12-29T14:59:54-08:00
Merge branch 'master' into arm-rtoy-issue-23
- - - - -
ebf96470 by Raymond Toy at 2014-12-29T18:33:49-08:00
More fixups for ldrh.
The generated instruction is wrong when the second src operand is an
indexing operation. And there needs to be separate cases for src2
being an indexing operation and a simple TN. (For a simple TN, we were
subtracting instead of adding.)
Add tests for this as well.
- - - - -
38a31e56 by Raymond Toy at 2014-12-29T19:46:34-08:00
Fix typo and line-up comments neatly for the disassembled instruction.
- - - - -
65df8ad4 by Raymond Toy at 2014-12-29T19:48:58-08:00
Arrange instruction examples in columns; clarify a comment.
- - - - -
baf9ac5a by Raymond Toy at 2014-12-29T19:54:14-08:00
Remove package prefixes from not-implemented.
- - - - -
1f0c550b by rtoy at 2014-12-29T20:01:59-08:00
Merged in arm-rtoy-issue-21 (pull request #55)
Fix issue #21: Handle assembly of ldrh with immediate or register offset
- - - - -
0189f3fa by rtoy at 2014-12-29T20:02:44-08:00
Merged in arm-rtoy-issue-22 (pull request #56)
Support EMIT-NOT-IMPLEMENTED in DEF-VM-SUPPORT-ROUTINE
- - - - -
a886d42d by rtoy at 2014-12-29T20:03:35-08:00
Merged in arm-rtoy-issue-23 (pull request #57)
EMIT-NOT-IMPLEMENTED not defined in RECEIVE-UNKNOWN-VALUES, DEFAULT-UNKNOWN-VALUES and EMIT-MULTIPLY
- - - - -
b0563539 by Raymond Toy at 2014-12-29T20:15:19-08:00
Sort the list of fasl extensions alphabetically.
- - - - -
dad51423 by rtoy at 2014-12-29T20:35:47-08:00
Merged in arm-rtoy-pull-request-58-a (pull request #59)
Sort the list of fasl extensions alphabetically.
- - - - -
1da11510 by Raymond Toy at 2014-12-29T21:00:49-08:00
Allow the prev and carry-in args to be on the unsigned-stack.
- - - - -
6e520197 by Raymond Toy at 2014-12-29T21:01:18-08:00
Merge branch 'master' into arm-rtoy-issue-25
- - - - -
df1e6d88 by Raymond Toy at 2014-12-29T21:19:34-08:00
Add OLD-VM:CHAR-BYTES.
See issue #27.
- - - - -
12f3ec1e by rtoy at 2014-12-30T15:05:11-08:00
Merged in arm-rtoy-issue-25 (pull request #60)
Fix issue #25: Allow 2 args to be on the unsigned-stack
- - - - -
db602e57 by rtoy at 2014-12-30T15:27:48-08:00
Merged in arm-rtoy-issue-27 (pull request #61)
Cross-compile script needs to add CHAR-BYTES
- - - - -
5726616e by Raymond Toy at 2014-12-30T15:47:03-08:00
Put all int args on the stack instead in registers for call-out.
This follows what the RT port does in the call-out vop.
Also, some functions want two return values in registers, so update
RESULT-REG-OFFSET appropriately.
With these changes the cross-compile successfully builds a
kernel.core.
See issue #26.
- - - - -
ba36728a by Raymond Toy at 2014-12-30T22:40:33-08:00
Remove register-args slot from arg-state and simplify int-arg by
removing the unused branch that handled the integer register args.
- - - - -
01c175bd by Raymond Toy at 2014-12-30T22:42:47-08:00
Rename my-make-wired-tn to the more conspicuous c-call-wired-tn, like
for the RT port.
- - - - -
132d2de8 by rtoy at 2014-12-30T23:14:46-08:00
Merged in arm-rtoy-issue-26 (pull request #62)
Put all int args on the stack instead in registers for call-out.
Fixes issue #26.
- - - - -
e444f7f1 by Raymond Toy at 2014-12-31T10:24:31-08:00
Support ARM/linux config for create-target.sh
See issue #30.
- - - - -
5d03d682 by Raymond Toy at 2014-12-31T10:31:18-08:00
Add Config files for ARM/linux.
See issue #29
- - - - -
27f8ab02 by Raymond Toy at 2014-12-31T13:30:32-08:00
When not using gencgc, we were selecting the wrong gc file and
options. Follow sparc in this.
- - - - -
f322f572 by Raymond Toy at 2014-12-31T14:04:15-08:00
Add arm-lispregs.h and arm-validate.h
Initial implementation of these files. Roughly correct but probably
needs work. This is just to get things compiling.
- - - - -
939c3af1 by Raymond Toy at 2014-12-31T15:18:23-08:00
Update according to comments.
Move -marm from CPPFLAGS to CFLAGS.
No need to check for gcc version.
Remove old __NO_CTYPE and _GNU_SOURCE defines.
- - - - -
31fabd21 by Raymond Toy at 2014-12-31T16:40:00-08:00
Replace -mfpu=vfpv3-d16 with -ffp-contract=off to make sure we never
generate fused macs. This could potentially break the fdlibm routines.
vfpv3-d16 is the default anyway.
- - - - -
05362eb5 by Raymond Toy at 2014-12-31T16:47:22-08:00
Update according to review.
Remove _ prefix (and suffix) from _ARM_LISPREGS_H_.
Define REGS macro which was left out.
- - - - -
84fa139f by Raymond Toy at 2014-12-31T16:59:00-08:00
Update according to review, and correct some sizes
Remove prefix and suffix from _ARM_VALIDATE_H_
Use correct values for address map (from design doc).
Replace MB_128 with MB and adjust other usages appropriately.
Remove support for gencgc
- - - - -
effeca8a by Raymond Toy at 2014-12-31T17:05:36-08:00
Fix typo: sc -> scp.
- - - - -
4e7d62b0 by Raymond Toy at 2014-12-31T17:09:08-08:00
Fix another typo: offset -> reg.
- - - - -
55cd7107 by Raymond Toy at 2014-12-31T17:29:55-08:00
Fix up printf warnings.
See issue #34.
- - - - -
ef1cb87c by Raymond Toy at 2014-12-31T17:45:49-08:00
Address review comments.
- - - - -
2a9e5d86 by Raymond Toy at 2014-12-31T20:43:10-08:00
Clean up CFLAGS some more; don't need -march or -fp-contract.
- - - - -
c6a0eeb8 by Raymond Toy at 2015-01-01T09:58:36-08:00
Set default heap size to 128 as specified in the design notes. Also
detab and fix a few space issues.
- - - - -
89af8f22 by Raymond Toy at 2015-01-01T09:59:27-08:00
Fix typo.
- - - - -
58e761f7 by Raymond Toy at 2015-01-01T10:11:02-08:00
Add assert for nwords > 0 and add default: case.
Still need to initialize nwords to get rid of compiler warning.
- - - - -
389212f1 by Raymond Toy at 2015-01-01T12:46:07-08:00
Initial implementation of Linux-os-arm.c, with splitting out of x86
stuff from Linux-os.c to Linux-os-x86.c.
- - - - -
23450b84 by Raymond Toy at 2015-01-01T15:34:51-08:00
Move emit-not-implemented macrolet outside assemble.
x86 builds again.
See issue #36.
- - - - -
d5f4d587 by Raymond Toy at 2015-01-01T16:42:17-08:00
Add include files.
- - - - -
c4a7449d by Raymond Toy at 2015-01-01T16:51:49-08:00
Fix typo.
- - - - -
aeb8e885 by Raymond Toy at 2015-01-01T16:53:14-08:00
Define reg_PC.
- - - - -
52c8996b by Raymond Toy at 2015-01-01T18:00:25-08:00
Need to include assert.h and forgot to remove an #if 0.
- - - - -
a6e66fa6 by Raymond Toy at 2015-01-01T18:02:38-08:00
Actually remove the code that was moved to Linux-os-x86.c.
- - - - -
5f647694 by Raymond Toy at 2015-01-01T18:05:06-08:00
Remove unneeded #if's.
- - - - -
8b0c47fc by Raymond Toy at 2015-01-02T16:32:42-08:00
Smash arm_linux case into x86_linux case.
- - - - -
6a39548f by Raymond Toy at 2015-01-02T17:21:23-08:00
Add LISPPTR to print out lisp objects as we want.
- - - - -
18d85856 by Raymond Toy at 2015-01-02T17:21:59-08:00
Use LISPPTR as needed.
- - - - -
86d50eb2 by Raymond Toy at 2015-01-02T17:25:18-08:00
Remove blank line.
- - - - -
0fe0c95e by rtoy at 2015-01-02T17:26:21-08:00
Merged in arm-rtoy-issue-36 (pull request #67)
Move emit-not-implemented macrolet outside assemble.
Fixes issue #36.
- - - - -
9fe9242d by Raymond Toy at 2015-01-02T18:21:06-08:00
Remove CAT macro; remove parens for NREGS.
- - - - -
7adcf5ac by Raymond Toy at 2015-01-02T18:24:40-08:00
Address review comments.
Also added RESEVERED_SPACE to leave some room at the end of each space
that is not mapped so we can detect when we've reached the end of the
space.
- - - - -
92ddb238 by Raymond Toy at 2015-01-02T18:30:12-08:00
Move arm_common into arm_linux and remove Config.arm_common.
Add TODO to reverse this someday if needed.
- - - - -
6def5b2d by Raymond Toy at 2015-01-03T15:41:55-08:00
Stub out routines needed arm-arch.c.
- - - - -
910c664b by rtoy at 2015-01-04T11:10:24-08:00
Merged in arm-rtoy-issue-30 (pull request #63)
Support ARM/linux config for create-target.sh
Fixes issue #30
- - - - -
1e5492ab by Raymond Toy at 2015-01-04T11:13:01-08:00
Remove duplicated lines.
- - - - -
7c1260fc by Raymond Toy at 2015-01-04T18:37:10-08:00
Simplify according to review.
- - - - -
b267045c by Raymond Toy at 2015-01-04T18:39:38-08:00
Remove UNDEFSYMPATTERN.
- - - - -
b6071490 by Raymond Toy at 2015-01-05T08:46:28-08:00
Clean up according to review.
- - - - -
c3260001 by rtoy at 2015-01-05T08:47:46-08:00
Merged in arm-rtoy-issue-29 (pull request #64)
Add Config files for ARM/linux.
Fixes issue #29
- - - - -
920c5b80 by Raymond Toy at 2015-01-05T08:48:32-08:00
Merge branch 'master' into arm-rtoy-issue-34
- - - - -
154acfeb by Raymond Toy at 2015-01-05T08:56:02-08:00
Mostly revert to master version and use %lx instead of %x.
- - - - -
2613d207 by Raymond Toy at 2015-01-05T08:57:26-08:00
Remove LISPPTR.
- - - - -
66cbdc5b by Raymond Toy at 2015-01-05T09:01:50-08:00
Define and use KB.
- - - - -
b80364ad by Raymond Toy at 2015-01-05T09:01:54-08:00
Merge branch 'master' into arm-rtoy-issue-31
- - - - -
175e18bf by Raymond Toy at 2015-01-05T09:04:26-08:00
Can't undef these; they're needed in lisp.c at least.
- - - - -
c4e99d32 by Raymond Toy at 2015-01-05T10:00:32-08:00
Merge branch 'master' into arm-rtoy-issue-32
Conflicts:
src/lisp/Config.arm_linux
- - - - -
a2405e2c by Raymond Toy at 2015-01-05T10:14:24-08:00
Put everything back into Linux-os.c, with arm updates.
- - - - -
5aeb4f3b by Raymond Toy at 2015-01-05T10:15:42-08:00
Don't have Linux-os-x86.c anymore.
- - - - -
88cabc3d by Raymond Toy at 2015-01-05T10:16:24-08:00
Remove Linux-os-arm.c and Linux-os-x86.c.
- - - - -
261c915f by Raymond Toy at 2015-01-05T16:23:00-08:00
Fix typo introduced when moving the x86-64 version of
os_sigcontext_reg to the x86 implementation.
- - - - -
e1eff413 by Raymond Toy at 2015-01-05T20:09:06-08:00
Implement LDM/STM instructions.
See isseu #11.
The syntax is not great but to keep it inline with other instructions
where the condition code is at the end, the list of registers is
really a list.
Some simple tests added in test-disassem.lisp.
- - - - -
9ba12871 by Raymond Toy at 2015-01-05T22:48:33-08:00
Fix typo, and remove extra space.
- - - - -
f4614ea6 by rtoy at 2015-01-05T22:49:27-08:00
Merged in arm-rtoy-issue-11 (pull request #70)
Implement LDM/STM instructions.
Fixes issue #11.
- - - - -
bbd4d8fa by Raymond Toy at 2015-01-05T22:55:49-08:00
Fix up according to review.
Control stack grows up.
Use os_sigcontext_reg instead of os_sigcontext_pc (which should not be
implemented in Linux-os.c for arm).
- - - - -
a487d347 by Raymond Toy at 2015-01-05T23:10:52-08:00
Remove RESERVED_SPACE stuff. Other ports don't need this.
- - - - -
01ca2636 by Raymond Toy at 2015-01-06T19:01:03-08:00
Clean up according to review.
arm-lispregs.h:
* Add comment for last #endif
arm-validate.h:
* Oops. Forgot to remove one use of RESERVED_SPACE.
* Add comment for last #endif
- - - - -
61a1c5e2 by rtoy at 2015-01-06T19:02:48-08:00
Merged in arm-rtoy-issue-31 (pull request #65)
Add arm-lispregs.h and arm-validate.h
Fix issue #31.
- - - - -
6d07520f by Raymond Toy at 2015-01-06T19:12:15-08:00
Fix up according to review.
* Remove <inttypes.h>
* Make gc_abort() call abort().
- - - - -
ddbf90b3 by Raymond Toy at 2015-01-06T19:12:18-08:00
Merge branch 'master' into arm-rtoy-issue-34
- - - - -
66d3151f by Raymond Toy at 2015-01-06T19:27:23-08:00
Refactor according to review.
Use abort() when needed
Push #ifdef's up and add #error as needed.
- - - - -
19badbbf by Raymond Toy at 2015-01-06T19:27:29-08:00
Merge branch 'master' into arm-rtoy-issue-32
- - - - -
704a7e16 by Raymond Toy at 2015-01-06T19:35:04-08:00
Clean up personality() parts, add abort() for unimplemented ARM
version of sigsegv_handler().
- - - - -
9d31afdd by Raymond Toy at 2015-01-06T19:37:39-08:00
Fix up DPRINTF so it should compile.
- - - - -
f117474d by Raymond Toy at 2015-01-06T20:50:10-08:00
Reimplement NOT-IMPLEMENTED to dump the symbol name into the code
stream.
See issue #41. The symbol name is now saved into the instruction
stream as a sequence of bytes. The length is encoded into a branch
instruction before the bytes so that if the trap is continued, the
bytes are skipped over nicely.
Had to update how EMIT-NOT-IMPLEMENTED was calling NOT-IMPLEMENTED and
a few other places where bare NOT-IMPLEMENTED was called directly.
- - - - -
89cbb3fe by Raymond Toy at 2015-01-06T21:28:25-08:00
Abort instead of returning NULL. Include stdlib.h to get abort
defined.
- - - - -
d103be12 by Raymond Toy at 2015-01-07T19:21:42-08:00
Tabify the x86_64 and arm os_sigcontext_reg routines to match existing
style.
- - - - -
a6a58fce by rtoy at 2015-01-07T19:23:51-08:00
Merged in arm-rtoy-issue-32 (pull request #68)
Initial implementation of Linux-os.c for ARM
Fixes issue #32.
- - - - -
5a548df5 by Raymond Toy at 2015-01-07T19:31:04-08:00
Remove gc_assert.
- - - - -
aa65235c by rtoy at 2015-01-07T19:31:52-08:00
Merged in arm-rtoy-issue-34 (pull request #66)
Fix up printf warnings in gc.c.
Fix issue #34.
- - - - -
9a3320d3 by Raymond Toy at 2015-01-07T19:37:57-08:00
Update according to review.
o Use do {} while in NOT_IMPLEMENTED and call abort too.
o Return NULL in arch_init.
o Remove some return statements that can't be reached due to
NOT_IMPLEMENTED.
o Rip out contents of sigill_handler and replace with NOT_IMPLEMENTED.
o Lisp stack grows down for the arm port, so decrement the pointer,
not increment.
- - - - -
770f93de by Raymond Toy at 2015-01-07T19:38:27-08:00
Merge branch 'master' into arm-rtoy-issue-37
- - - - -
761cc8e2 by Raymond Toy at 2015-01-07T19:39:59-08:00
Remove trailing space after \ continuation.
- - - - -
50b488cf by Raymond Toy at 2015-01-07T19:41:34-08:00
Remove extra space.
- - - - -
91b08bd6 by rtoy at 2015-01-08T18:59:17-08:00
Merged in arm-rtoy-issue-37 (pull request #69)
Stub out routines needed in arm-arch.c.
Fixes issue #37.
- - - - -
88278c67 by Raymond Toy at 2015-01-08T19:02:09-08:00
Add support for arm/linux for EXTERN.
(This seems like the wrong place for that!)
- - - - -
9ebf5ba0 by Raymond Toy at 2015-01-08T19:03:01-08:00
Merge branch 'master' into arm-rtoy-issue-43
- - - - -
28bb562f by Raymond Toy at 2015-01-08T19:03:23-08:00
Merge branch 'master' into arm-rtoy-issue-41
- - - - -
8b7bf6d3 by Raymond Toy at 2015-01-10T10:14:41-08:00
Address review comments.
o Use a B instruction
o Remove unused defregtn a0.
- - - - -
8c6c8f2e by Raymond Toy at 2015-01-10T15:31:46-08:00
Use ALLOCATION_POINTER and BINDING_STACK_POINTER for C runtime.
Arm uses the static symbols *allocation-pointer* and
*binding-stack-pointer* to implement the allocation pointer and
binding stack pointer instead of dedicated registers. Update the C
code to use these appropriately.
See issue #44.
- - - - -
cc4484c8 by Raymond Toy at 2015-01-10T15:33:25-08:00
Remove some temporarily #if 0'd code.
- - - - -
6254f759 by Raymond Toy at 2015-01-10T15:37:29-08:00
Stub out restore_fpu for arm.
See issue #45.
- - - - -
c4c86ac8 by Raymond Toy at 2015-01-10T16:13:17-08:00
Add not-implemented trap code for use by NOT-IMPLEMENTED.
See issue #46.
- - - - -
9da1d885 by Raymond Toy at 2015-01-10T17:21:39-08:00
Initialize current_control_stack_pointer correctly for ARM.
The ARM Lisp stack will grow down, not up like other RISC ports.
See issue #51.
- - - - -
28c194f2 by Raymond Toy at 2015-01-10T17:38:04-08:00
Disable optimization.
We don't need full optimization at this stage of development, so use
-Og instead of -O2.
- - - - -
1f00d76d by rtoy at 2015-01-11T08:35:03-08:00
Merged in arm-rtoy-issue-45 (pull request #73)
Fix issue #45: Stub out restore_fpu for arm.
- - - - -
ae548650 by rtoy at 2015-01-11T08:50:42-08:00
Merged in arm-rtoy-issue-51 (pull request #74)
Fix issue #51: Initialize current_control_stack_pointer correctly for ARM.
- - - - -
244471a8 by Raymond Toy at 2015-01-11T10:31:47-08:00
Simplify not-implemented.
- - - - -
2d9a5e31 by Raymond Toy at 2015-01-11T10:51:56-08:00
Implement emit-relative-branch correctly for ARM.
The offset in the branch imeediate instruction is offset by 8 bytes.
If the instruction is at address n and the offset value in the
instruction is x, the actual target of the branch is the address
n + x + 8. This needs to be accounted for when we emit relative
branchs and also in the disassembly of relative branches.
See issue #52.
- - - - -
b0b4a223 by Raymond Toy at 2015-01-11T10:56:06-08:00
Fix typo.
- - - - -
414dcc00 by Raymond Toy at 2015-01-11T11:08:17-08:00
Update according to review.
- - - - -
5095724f by rtoy at 2015-01-11T13:34:29-08:00
Merged in arm-rtoy-compile-for-debug (pull request #75)
Disable optimization for now
- - - - -
745afef4 by Raymond Toy at 2015-01-11T13:57:06-08:00
Update according to review.
- - - - -
2fae54ff by Raymond Toy at 2015-01-11T14:04:37-08:00
Fix up comment for relative-branch-offset
- - - - -
351f4db9 by Raymond Toy at 2015-01-11T14:13:48-08:00
Don't need an .extern for arm/linux.
Also put back original indentation of EXTERN.
- - - - -
415f01f5 by Raymond Toy at 2015-01-11T16:29:39-08:00
Add EMIT-NOT-IMPLEMENTED to vops that may already have
implementations.
See issue #53.
- - - - -
25877d1d by Raymond Toy at 2015-01-11T16:33:02-08:00
Merge branch 'arm-rtoy-issue-41' into arm-rtoy-issue-46-on-41
Conflicts:
src/compiler/arm/insts.lisp
- - - - -
494e5b1c by Raymond Toy at 2015-01-11T17:35:52-08:00
Put args on the stack in the right place in funcall0 and friends.
- - - - -
e03f5ef6 by Raymond Toy at 2015-01-11T20:05:09-08:00
Export not-implemented-trap and make sure object-not-list-trap value
doesn't overlap the other trap values.
- - - - -
80e7f095 by Raymond Toy at 2015-01-11T22:43:51-08:00
Implement initial sigill handler for not-implemented trap.
See issue #57.
- - - - -
a2d6591c by Raymond Toy at 2015-01-12T19:14:20-08:00
Merge branch 'master' into arm-rtoy-issue-43
- - - - -
7d25b045 by Raymond Toy at 2015-01-12T19:27:15-08:00
Revert change.
- - - - -
24d3f283 by Raymond Toy at 2015-01-12T20:00:58-08:00
First cut at call_into_lisp.
This implements most of the first part of call_into_lisp to get into
lisp. The return from lisp is not yet implemented.
See issue #43.
- - - - -
12014237 by Raymond Toy at 2015-01-12T22:16:31-08:00
Fix mistake in computing the actual function address.
- - - - -
093e5eca by Raymond Toy at 2015-01-13T20:33:36-08:00
Use 16 double-float registers.
- - - - -
487d7061 by Raymond Toy at 2015-01-13T20:36:56-08:00
Implement XEP-ALLOCATE-FRAME
- - - - -
6da00306 by rtoy at 2015-01-14T19:13:02-08:00
Merged in arm-rtoy-issue-41 (pull request #71)
Reimplement NOT-IMPLEMENTED to dump the symbol name into the code stream.
Fix issue #41.
- - - - -
c5c32c0a by rtoy at 2015-01-14T19:13:46-08:00
Merged in arm-rtoy-issue-53 (pull request #77)
Fix issue #53: Add EMIT-NOT-IMPLEMENTED to vops that may already have been implemented
- - - - -
f1329f8c by rtoy at 2015-01-14T19:14:17-08:00
Merged in arm-rtoy-issue-55 (pull request #79)
Fix issue #55: Put args on the stack in the right place in funcall0 and friends.
- - - - -
ce99877e by rtoy at 2015-01-14T19:15:55-08:00
Merged in arm-rtoy-issue-46-on-41 (pull request #78)
Fix issue #46: NOT-IMPLEMENTED gets its own trap code
- - - - -
8c447794 by Raymond Toy at 2015-01-14T19:17:46-08:00
Merge branch 'master' into arm-rtoy-issue-56
- - - - -
c1c940eb by Raymond Toy at 2015-01-14T19:36:03-08:00
Kill :vfpv3-d16 and fix float-registers to 16 in vm.lisp.
- - - - -
127b4226 by Raymond Toy at 2015-01-14T19:40:52-08:00
Update according to review.
- - - - -
6dc5e3ef by Raymond Toy at 2015-01-14T19:46:22-08:00
Update according to review:
o Kill clear-memory-p
o Use string for not-implemented.
- - - - -
0b44d7fb by Raymond Toy at 2015-01-14T20:03:47-08:00
Update according to review.
- - - - -
b964a499 by Raymond Toy at 2015-01-14T20:09:56-08:00
Fix a few compiler notes.
- - - - -
c3c25012 by Raymond Toy at 2015-01-14T21:01:43-08:00
Merge branch 'master' into arm-rtoy-issue-57
- - - - -
b9047cdc by Raymond Toy at 2015-01-14T21:09:51-08:00
Merge branch 'master' into arm-rtoy-issue-43
- - - - -
ab311f22 by Raymond Toy at 2015-01-14T21:12:58-08:00
Merge branch 'arm-rtoy-issue-44' into arm-rtoy-issue-43
- - - - -
57e91dfe by Raymond Toy at 2015-01-14T21:41:16-08:00
Update according to review.
- - - - -
bd08a69a by Raymond Toy at 2015-01-15T19:50:41-08:00
Update according to review.
- - - - -
2ceac803 by Raymond Toy at 2015-01-15T20:03:14-08:00
Update according to review.
o Remove .text from FUNCDEF
o The header word for undefined_tramp and closure_tramp is wrong. ARM
is little-endian so the type_FunctionHeader byte needs to come
first.
o Don't need the .align for undefined_tramp and closure_tramp.
o Align function_end_breakpoint_guts to 8 bytes because sparc
does. Not sure if this is really necessary, though.
- - - - -
a5749fb1 by Raymond Toy at 2015-01-15T20:18:22-08:00
Fix typo in getting the high part of the address of
current_control_stack_pointer.
- - - - -
b4fcf05b by Raymond Toy at 2015-01-15T20:30:56-08:00
Use inst byte instead of emit-byte
See issue #58.
- - - - -
820eb269 by Raymond Toy at 2015-01-15T20:42:17-08:00
Fix typo.
- - - - -
926359d4 by Raymond Toy at 2015-01-15T22:31:51-08:00
Implement undefineds-assem.S.
See issue #35.
- - - - -
b2ffbf70 by Raymond Toy at 2015-01-17T09:09:35-08:00
Be lenient in disassembling CMP
When disassembling a CMP instruction, allow the dst register field of
the instruction to be any value instead of fixing it to 0. The dst
isn't printed anyway.
See issue #54.
- - - - -
f278aaa2 by Raymond Toy at 2015-01-17T09:15:47-08:00
Better disassembly for MOV Rd, Rs
The actual instruction is LSL Rd, Rs, #0, which we'd like disassembled
as MOV, which is a bit easier to understand.
See issue #15.
- - - - -
593f7381 by Raymond Toy at 2015-01-17T09:24:14-08:00
Add test from issue #54.
- - - - -
19c530aa by Raymond Toy at 2015-01-17T10:48:38-08:00
Include the name when disassembling UDF.
See issue #60.
When disassembling the UDF instruction, print out the name as a
disassembly note.
We also updated the udf printer to print the immediate using the
current radix instead of always using base 10. This for consistency
with how other numbers are printed.
- - - - -
ba0c7ade by Raymond Toy at 2015-01-18T20:05:19-08:00
Access static symbols correctly, and save the current C stack pointer
and frame pointer to the static symbols so Lisp can access them.
- - - - -
b8a4eb34 by Raymond Toy at 2015-01-19T11:15:12-08:00
Swap CFP and OCFP register assignments.
r11 is preserved across C function calls, so it's advantageous to make
CFP be r11 and OCFP be r12. r12 is not preserved across call, but
OCFP is stored on the Lisp stack, so we can easily recover the value.
See issue #62.
- - - - -
c680c1f1 by rtoy at 2015-01-19T19:43:45-08:00
Merged in arm-rtoy-issue-58 (pull request #84)
Fix issue #58: Use inst byte instead of emit-byte
- - - - -
49f644f1 by rtoy at 2015-01-19T19:44:41-08:00
Merged in arm-rtoy-issue-44 (pull request #72)
Fix issue 44: Use ALLOCATION_POINTER and BINDING_STACK_POINTER in C runtime
- - - - -
5db171c3 by Raymond Toy at 2015-01-19T19:49:09-08:00
Put the printer def all on one line, per review comments.
- - - - -
bcea8e75 by rtoy at 2015-01-19T19:49:56-08:00
Merged in arm-rtoy-issue-15 (pull request #87)
Fix issue #15: Better disassembly for MOV Rd, Rs
- - - - -
5188ce34 by Raymond Toy at 2015-01-19T19:57:45-08:00
Update according to review.
- - - - -
1b031db7 by Raymond Toy at 2015-01-19T20:45:45-08:00
Add new function-header trap value and use it in XEP-ALLOCATE-FRAME.
- - - - -
f35fdb72 by rtoy at 2015-01-20T20:05:26-08:00
Merged in arm-rtoy-issue-54a (pull request #86)
Fix issue #54: Be lenient in disassembling CMP
- - - - -
a7a2dcab by rtoy at 2015-01-20T20:06:01-08:00
Merged in arm-rtoy-issue-56 (pull request #82)
Fix issue #56: Use 16 double-float registers.
- - - - -
73ffadc7 by Raymond Toy at 2015-01-22T21:02:10-08:00
Implement BX instruction and fix %LI.
The BX instruction is not previously implemented and we need it.
We also take this opportunity to correct the %LI function.
Previously, the MOVW instruction would be used after the MOVT
instruction, but that would clear the high bits set by MOVT.
See issue #63.
- - - - -
5762665a by rtoy at 2015-01-23T18:25:24-08:00
Merged in arm-rtoy-issue-63 (pull request #90)
Fix issue #63: Implement BX instruction and fix %LI.
- - - - -
0990bbf6 by Raymond Toy at 2015-01-24T23:14:59-08:00
Merge branch 'master' into arm-rtoy-issue-43
- - - - -
6e8e11be by Raymond Toy at 2015-01-24T23:20:14-08:00
Add missing NOT-IMPLEMENTED stuff.
- - - - -
3ba5dca4 by Raymond Toy at 2015-01-25T08:53:04-08:00
Add more missing NOT-IMPLEMENTED stuff.
- - - - -
025d6ff6 by Raymond Toy at 2015-01-27T19:22:08-08:00
Update according to review.
* Remove FUNCDEF
* Upper case load/store/load_symbol_value/store_symbol_value.
* Use ldr reg, =foo instead of movw/movt.
* Insert spaces around commas.
* Rename SET_SIZE to ENDFUNC.
* Change .global to .globl.
* Remove unneeded .text and .align.
- - - - -
5a5e568c by Raymond Toy at 2015-01-30T21:10:40-08:00
Store the function pointer into the fdefn-raw-addr-slot instead of the
raw address.
This matches sparc and ppc and slightly simplifies scavenging the
fdefn object.
- - - - -
ee564327 by Raymond Toy at 2015-01-31T09:40:45-08:00
Need to load up arm assembly files.
- - - - -
425a453c by rtoy at 2015-02-01T08:56:29-08:00
Merged in arm-rtoy-issue-66 (pull request #93)
Fix issue #66: Need to load up arm assembly files.
- - - - -
3dc799a0 by rtoy at 2015-02-01T08:57:18-08:00
Merged in arm-rtoy-issue-65 (pull request #92)
Fix issue #65: Store function pointer into fdefn-raw-addr-slot instead of the raw address
- - - - -
231e67b9 by rtoy at 2015-02-01T08:58:50-08:00
Merged in arm-rtoy-issue-48 (pull request #83)
Fix issue #48: Implement XEP-ALLOCATE-FRAME
- - - - -
e988eae5 by rtoy at 2015-02-01T08:59:13-08:00
Merged in arm-rtoy-issue-52 (pull request #76)
Fix issue #52: Implement emit-relative-branch correctly for ARM.
- - - - -
286d6231 by Raymond Toy at 2015-02-01T13:46:22-08:00
Merge branch 'master' into arm-rtoy-issue-43
- - - - -
2e907465 by Raymond Toy at 2015-02-01T14:04:11-08:00
Add D(x)=x, for completeness.
- - - - -
27d4e242 by Raymond Toy at 2015-02-01T14:06:09-08:00
Remove FIXME comment and clean up following comment.
- - - - -
424456d2 by Raymond Toy at 2015-02-01T14:10:35-08:00
Cuddle brace with case statement.
- - - - -
50c6e6f9 by Raymond Toy at 2015-02-01T15:25:24-08:00
Renumber traps so we don't use 16 as a trap value.
Also took opportunity to make add pseudo-atomic trap as part of the
defenum.
- - - - -
32acdae4 by Raymond Toy at 2015-02-01T15:28:22-08:00
Fix some comments.
- - - - -
105916ec by Raymond Toy at 2015-02-01T15:57:49-08:00
Remove LOAD/STORE and add .pool to ENDFUNC.
- - - - -
da760020 by rtoy at 2015-02-01T20:49:20-08:00
Merged in arm-rtoy-issue-57 (pull request #80)
Fix issue #57: Implement initial sigill handler for not-implemented trap.
- - - - -
fc96eba7 by Raymond Toy at 2015-02-01T21:27:49-08:00
Make D(foo) do nothing and add TODO to clean this up.
- - - - -
573158b9 by Raymond Toy at 2015-02-01T21:34:49-08:00
Remove ambiguous part of comment.
- - - - -
514856b3 by rtoy at 2015-02-02T18:51:49-08:00
Merged in arm-rtoy-issue-35 (pull request #85)
Fix issue #35: Implement undefineds-assem.S.
- - - - -
fc7454c9 by Raymond Toy at 2015-02-02T18:56:12-08:00
Remove bogus comment.
- - - - -
20d97d9e by rtoy at 2015-02-02T18:57:23-08:00
Merged in arm-rtoy-issue-43 (pull request #81)
Fix issue #43: Initial implemention of call_into_lisp
- - - - -
400bb985 by rtoy at 2015-02-02T18:58:46-08:00
Merged in arm-rtoy-issue-67 (pull request #94)
Fix issue #67: Renumber traps so we don't use 16 as a trap value.
- - - - -
254b3a5e by Raymond Toy at 2015-02-02T19:36:04-08:00
Change NOT_IMPLEMENTED to require a message and value. Useful for
printing additional information.
- - - - -
bdae0934 by Raymond Toy at 2015-02-02T19:44:42-08:00
Implement call_into_c.
- - - - -
b329355a by Raymond Toy at 2015-02-03T19:54:16-08:00
Remove linkage-tables feature for arm/linux
The initial port for arm will not use linkage-tables. Update code
accordingly.
tools/cross-scripts/cross-x86-arm.lisp:
o Remove :linkage-table from the set of features we want for arm. Put
it on the mis-features list.
lisp/undefineds.h:
o Update with symbols arm/linux wants.
compiler/generic/new-genesis.lisp:
o Update symbol lookup for our arm implementation that doesn't use the
PVE_stub stuff.
o Add implementation for arm for handling fixups
o Minor fix adding conditionalization for linkage-table that was
inadverntly missed long ago.
- - - - -
7024f152 by Raymond Toy at 2015-02-03T21:06:40-08:00
More changes to support building without linkage tables.
Config.arm_linux:
o Update NM to use linux-nm.
o Need -lutil.
linux-nm:
o Update to linux-nm to replace stub_ so we use the correct addresses
in genesis.
- - - - -
e93bfbea by Raymond Toy at 2015-02-03T21:23:53-08:00
Remove unneeded prints.
- - - - -
6e0141b7 by Raymond Toy at 2015-02-03T21:25:45-08:00
The new symbols are needed by linux and not just arm and linux.
- - - - -
4b03b406 by rtoy at 2015-02-03T21:27:53-08:00
Merged in arm-rtoy-issue-64 (pull request #91)
Fix issue #64: Add missing NOT-IMPLEMENTED stuff.
- - - - -
2594875f by Raymond Toy at 2015-02-03T21:42:25-08:00
Fix typos and bugs in fixups.
o Encoding for the movt inst was using the encoding for movw.
o Fix typo: It's :movw, not :mov3!
o Reorder fixup code to use movw/movt, not movt/movw which wipes out
the top 16 bits set by movt.
- - - - -
a22cae0c by Raymond Toy at 2015-02-04T19:25:19-08:00
Update according to review.
- - - - -
8d0632e5 by Raymond Toy at 2015-02-04T19:27:26-08:00
Update according to review.
- - - - -
c98e6c75 by rtoy at 2015-02-04T19:27:59-08:00
Merged in arm-rtoy-issue-61 (pull request #97)
Fix issue #61: Remove linkage-tables feature for arm/linux
- - - - -
a250751a by Raymond Toy at 2015-02-05T20:35:34-08:00
Merge branch 'master' into arm-rtoy-issue-60
- - - - -
55a360ab by Raymond Toy at 2015-02-05T21:15:15-08:00
Fix call to snarf-not-implemented-name.
- - - - -
fc0d17cf by Raymond Toy at 2015-02-05T21:20:09-08:00
Add -X option to (break) after writing the core file.
Useful to stop the cross-compilation just before it quits so we can
run compile-file or other tests using the cross-compiled target code.
- - - - -
207e23b2 by Raymond Toy at 2015-02-05T21:53:49-08:00
Print immediate values in the current output radix.
- - - - -
59a077e5 by Raymond Toy at 2015-02-05T21:57:30-08:00
Oops. Revert the print-immed change.
- - - - -
0cc43237 by Raymond Toy at 2015-02-05T21:58:23-08:00
Print immediate values in the current output radix.
- - - - -
52f5cd43 by rtoy at 2015-02-08T16:20:10-08:00
Merged in arm-rtoy-issue-69 (pull request #98)
Fix issue #69: Add -X option to (break) after writing the core file.
- - - - -
bea76dfe by rtoy at 2015-02-08T16:25:17-08:00
Merged in arm-rtoy-issue-59 (pull request #96)
Fix issue #59: Implement call_into_c.
- - - - -
ac0164fc by Raymond Toy at 2015-02-09T20:11:12-08:00
Use FORMAT to print out immediate values.
- - - - -
4072623e by Raymond Toy at 2015-07-18T17:10:25-07:00
Merge branch 'master' of gitlab cmucl (snapshot-2015-07) into arm-rtoy-sync-2015-07
- - - - -
f1d04870 by rtoy at 2015-07-18T17:14:25-07:00
Merged in arm-rtoy-sync-2015-07 (pull request #100)
Sync to upstream snapshot-2015-07
- - - - -
f0287256 by Raymond Toy at 2015-07-23T21:01:22-07:00
Merge branch 'master' into arm-rtoy-issue-70
- - - - -
31a4b882 by Raymond Toy at 2015-07-25T12:35:09-07:00
Merge branch 'master' into arm-rtoy-issue-68
- - - - -
bf3d61fd by Raymond Toy at 2015-07-25T12:46:55-07:00
Merge branch 'master' into arm-rtoy-issue-62
- - - - -
1c7e9fe5 by Jon Boone at 2015-09-05T00:52:15-04:00
Attempted fix for call_into_lisp():
* modified call_into_lisp() to set the current frame pointer to the current stack pointer upon entry into the subroutine
* cleaned up use of reg_NL1 as base pointer to passed in arguments
Attempted fix for arm-lispregs.h defintions
* defined all register names as part of REGNAMES
* corrected typo where reg_CSP was referred to as reg_SP
- - - - -
391c28ea by Jon Boone at 2015-09-06T16:40:18-04:00
removing extra spaces and indentation
- - - - -
1468de3c by rtoy at 2015-09-07T08:16:12-07:00
Merged in arm-rtoy-issue-70 (pull request #99)
Fix issue #70: Print immediate values in the current output radix.
- - - - -
482dcd4b by Raymond Toy at 2015-09-07T08:19:23-07:00
Merge branch 'master' into arm-rtoy-issue-68
- - - - -
f6571270 by Raymond Toy at 2015-09-07T08:38:48-07:00
Merge branch 'master' into arm-rtoy-issue-60
- - - - -
cfd39202 by Raymond Toy at 2015-09-07T09:26:23-07:00
Merge tag 'snapshot-2015-09' of /Volumes/share2/src/clnet/cmucl/dev/cmucl into arm-rtoy-sync-2015-09
Snapshot 2015-09
- - - - -
f6f683ad by rtoy at 2015-09-07T09:28:39-07:00
Merged in arm-rtoy-sync-2015-09 (pull request #102)
Sync to upstream snapshot-2015-09
- - - - -
1528a699 by rtoy at 2015-09-07T17:20:07-07:00
Merged in arm-rtoy-issue-60 (pull request #88)
Fix issue #60: Include the name when disassembling UDF.
- - - - -
3330b7f9 by Jon Boone at 2015-09-07T20:37:22-04:00
reverting to original behavior with reg_CFP set to reg_NL0
- - - - -
b3ffe768 by Raymond Toy at 2015-09-07T19:04:23-07:00
Merge branch 'master' into arm-rtoy-issue-68
- - - - -
768d390b by Raymond Toy at 2015-09-07T19:19:48-07:00
New version of NOT_IMPLEMENTED, suggested in review.
- - - - -
5a373364 by Raymond Toy at 2015-09-08T19:04:52-07:00
Rename NOT_IMPLEMENTED_MESSAGE to NOT_IMPLEMENTED and use it
everywhere.
- - - - -
558bae7f by Raymond Toy at 2015-09-08T19:10:50-07:00
Merge branch 'master' into arm-rtoy-issue-62
- - - - -
05c9bcd7 by Raymond Toy at 2015-09-08T19:54:47-07:00
Remove null statement.
- - - - -
5666384c by Raymond Toy at 2015-09-08T20:03:48-07:00
Fix issue #71: Typo introduced in pull request #99.
Add the closing paren for eval-when back.
- - - - -
5207563e by rtoy at 2015-09-08T20:07:15-07:00
Merged in arm-rtoy-issue-71 (pull request #103)
Fix issue #71: Typo introduced in pull request #99.
- - - - -
27809316 by Raymond Toy at 2015-09-08T20:08:06-07:00
Merge branch 'master' into arm-rtoy-issue-68
- - - - -
6af670d7 by Raymond Toy at 2015-09-08T20:20:26-07:00
Use lose() instead of NOT_IMPLEMENTED.
- - - - -
6e427904 by rtoy at 2015-09-08T21:37:13-07:00
Merged in arm-rtoy-issue-68 (pull request #95)
Fix issue #68: Change NOT_IMPLEMENTED to require a message and value. Useful for
- - - - -
49d13a9a by Jon Boone at 2015-09-12T18:46:44-04:00
corrected typo -- NL1 is the pointer to the control-stack, not NL0
- - - - -
e0137d5b by Raymond Toy at 2015-09-12T22:00:31-07:00
Initialize Lisp control stack pointer correctly.
Fixes #72. Set the control stack pointer a few words before the end
of the control stack space so that the pointer points to an area that
is actually writable.
- - - - -
7c557278 by Raymond Toy at 2015-09-14T19:42:18-07:00
Merge branch 'master' into arm-rtoy-issue-62
- - - - -
296b7f19 by Raymond Toy at 2015-09-14T19:45:55-07:00
Undo changes.
- - - - -
54bc2208 by Raymond Toy at 2015-09-14T19:49:33-07:00
Restore saved current_control_frame_pointer after returning.
- - - - -
2cb914e9 by Raymond Toy at 2015-09-14T20:02:41-07:00
Implement PRINT vop
- - - - -
dd4231e8 by Raymond Toy at 2015-09-18T18:26:09-07:00
Back up just one word to get to the writable area.
- - - - -
05121630 by Raymond Toy at 2015-09-18T18:26:30-07:00
Stack grows down so use negative offsets for load/store stack-tn.
- - - - -
34376580 by Raymond Toy at 2015-09-18T20:23:30-07:00
Control stack offsets are negative.
- - - - -
0a5e0351 by Jon Boone at 2015-09-19T22:09:35-04:00
clarifying that the arguments are relative to the current frame pointer
- - - - -
eb0afbe5 by Raymond Toy at 2015-09-20T17:52:45-07:00
Adjust the stack pointer and push the args correctly for the downward
growing control stack on ARM.
- - - - -
90201c95 by Raymond Toy at 2015-09-24T20:25:16-07:00
Use LIP as the temp register for restoring CSP and CFP.
- - - - -
26b2dfbb by Raymond Toy at 2015-09-24T20:28:48-07:00
Revert change.
- - - - -
5286c957 by Raymond Toy at 2015-09-24T20:32:15-07:00
Store args in the correct order for the downward growing stack in
funcall0 and friends.
- - - - -
ad474c06 by rtoy at 2015-09-26T07:16:34-07:00
Merged in arm-rtoy-issue-62 (pull request #89)
Restore CFP after calling out to C
- - - - -
8077e42a by Raymond Toy at 2015-09-26T07:17:37-07:00
Merge branch 'master' into arm-rtoy-issue-72
- - - - -
0a40ee39 by Raymond Toy at 2015-09-27T13:04:29-07:00
Simplify the macros load-stack-tn and store-stack-tn.
- - - - -
7f7788a8 by Raymond Toy at 2015-09-27T13:06:11-07:00
Remove some trailing blanks at eol.
- - - - -
753c130c by rtoy at 2015-09-27T16:07:20-07:00
Merged in arm-rtoy-issue-72 (pull request #104)
Initialize Lisp control stack pointer correctly.
Fix issue #72
- - - - -
ddd6e4f1 by Raymond Toy at 2015-09-27T16:09:31-07:00
Merge branch 'master' into arm-rtoy-issue-50-print
- - - - -
66fa223f by Raymond Toy at 2015-09-27T19:35:37-07:00
Fix obvious typo introduced in pull request #89.
We changed the register to hold the addresses, but weren't using it to
load the values from that address!
- - - - -
d3d9a065 by rtoy at 2015-09-27T19:37:16-07:00
Merged in arm-rtoy-pull-request-89-correction (pull request #106)
Fix obvious typo introduced in pull request #89.
- - - - -
1c5acfb5 by Raymond Toy at 2015-09-27T19:40:34-07:00
Update lisp stack offsets in call_into_c.
The lisp stack grows down so the offsets are negative!
- - - - -
8c9ef794 by Raymond Toy at 2015-09-27T19:40:58-07:00
Merge branch 'master' into arm-rtoy-issue-50-print
- - - - -
8092b31e by Raymond Toy at 2015-09-27T21:27:39-07:00
Only allocate 5 words.
The comment is updated as to what happens. I've verified this in the
debugger and for each case I've looked at, the C stack pointer is
double-word aligned just before the branch to the actual C routine.
- - - - -
10fddaee by Jon Boone at 2015-09-28T20:16:39-04:00
Merged in arm-jboone-asm-2015-09 (pull request #101)
correction of arm-lispregs.h definitions
- - - - -
7d742b80 by Raymond Toy at 2015-09-29T19:51:31-07:00
Merge branch 'master' into arm-rtoy-issue-50-print
- - - - -
afc851a1 by Raymond Toy at 2015-09-29T20:48:22-07:00
Document the expected stack layout for call_into_lisp.
- - - - -
3de51380 by Raymond Toy at 2015-09-29T20:50:50-07:00
Add a few more comments.
- - - - -
a2eac49e by Raymond Toy at 2015-09-29T20:51:36-07:00
* Remove some comments that should be in call_into_c.
* Zero out the unused arg stack slots, just for debugging purposes.
- - - - -
85da9e79 by rtoy at 2015-09-30T21:33:39-07:00
Merged in arm-rtoy-issue-50-print (pull request #105)
Implement PRINT vop. Fixes issue #50.
- - - - -
65126b0b by Raymond Toy at 2016-09-05T12:30:38-07:00
Merge tag 'snapshot-2016-06' of common-lisp.net:cmucl/cmucl into rtoy-sync-snapshot-2016-06
Snapshot 2016-06
- - - - -
eac639e3 by Raymond Toy at 2016-09-05T12:35:52-07:00
Merged in rtoy-sync-snapshot-2016-06 (pull request #107)
Sync upstream snapshot-2016-06
- - - - -
821366df by Raymond Toy at 2016-09-05T14:02:28-07:00
Define SIGNAL_STACK_SIZE
After merging the upstream snapshot, SIGNAL_STACK_SIZE needs to be
defined. Define it so we can build lisp again.
- - - - -
e2f97f37 by Raymond Toy at 2016-10-30T21:15:42-07:00
Merge branch 'master' of common-lisp.net:cmucl/cmucl into rtoy-sync-21b
- - - - -
41685321 by Raymond Toy at 2016-10-31T04:17:38+00:00
Merged in rtoy-sync-21b (pull request #108)
Sync to 21b
- - - - -
2dd8905d by Raymond Toy at 2016-11-13T08:49:18-08:00
Use altstack on ARM
When installing a low-level handler, use an alternate stack for
handling signals.
This seems to allow our handlers to handle signals again. Recently, we
started getting faults apparently before our handlers ever got a
chance to run. We can make progress now when running kernel.core.
Long ago, this all worked, but I don't know what made it stop. For
one, the OS on my panda board was updated (and downgraded). Don't
know what made it stop working.
- - - - -
2c7fdfc0 by Raymond Toy at 2016-11-13T08:49:18-08:00
Debug prints in sigill handler.
- - - - -
e16f13c4 by Raymond Toy at 2017-11-03T13:27:06-07:00
Merge tag '21c' into arm-rtoy-sync-21c
Release 21c
- - - - -
aba4c6ff by Raymond Toy at 2017-11-03T20:29:58+00:00
Sync to upstream 21c
- - - - -
4ce773f3 by Raymond Toy at 2017-11-03T22:43:47-07:00
Set address of where the lisp control stack ends
Must of been deleted at some point when merging with upstream.
- - - - -
4323fc55 by Jon Boone at 2018-03-10T01:12:38-05:00
* added new conditional around F(sigvec) that excludes it from __linux__ as well
- - - - -
98624fa8 by Jon Boone at 2018-03-10T02:06:38-05:00
* corrected typo (changed __FReeBSD__ to __FreeBSD__)
- - - - -
9723f8d5 by Raymond Toy at 2024-04-02T16:38:40-07:00
Merge tag 'snapshot-2018-03' of common-lisp.net:cmucl/cmucl into arm-rtoy-sync-2018-03
Snapshot 2018-03
2018-03-02
- - - - -
8e42b0d6 by Raymond Toy at 2024-04-02T16:39:25-07:00
Merged in arm-rtoy-sync-2018-03 (pull request #111)
Sync to upstream 2018-03 snapshot
- - - - -
ec527df9 by Raymond Toy at 2024-04-02T16:39:25-07:00
Fix up textdomains
Needed to add arm domain for with-textdomain because it was missing.
- - - - -
30c53c45 by Raymond Toy at 2024-04-02T16:40:51-07:00
Define COMPUTE-LRA-FROM-CODE
Copied from sparc.
We need this instruction to implement DEFINE-FULL-CALL for CALL-NAMED
(at least).
- - - - -
04ec39f8 by Raymond Toy at 2024-04-02T16:40:51-07:00
Add missing closing paren
Not sure how this was deleted, but I didn't bother to figure it out.
- - - - -
09522a80 by Raymond Toy at 2024-04-02T16:40:51-07:00
Fix typo in loadw/storew.
We had (typep '(signed-byte 13) offs). Duh! It should be
(typep offs '(signed-byte 13)).
- - - - -
c56ac2be by Jon Boone at 2024-04-02T16:40:51-07:00
Merged in linux-jboone-remove-sigvec (pull request #110)
* added new conditional around F(sigvec) that excludes it from __linux__ as well
Approved-by: Raymond Toy <toy.raymond(a)gmail.com>
- - - - -
b569a5fd by Raymond Toy at 2024-04-02T16:40:51-07:00
Merge branch 'master' into arm-rtoy-issue-76
- - - - -
4485910d by Raymond Toy at 2024-04-02T16:40:51-07:00
Print out more info for unknown udf code.
- - - - -
18b30077 by Raymond Toy at 2024-04-02T16:40:51-07:00
Reorder registers again.
Swap nfp with ocfp because r1 (nfp) is an output register and that
conflicts with the wired-tn nfp. I don't think ocfp is wired to
anything.
Update C and assembly code accordingly.
- - - - -
cde679fa by Raymond Toy at 2024-04-02T16:40:51-07:00
Merged master, fixing conflicts
- - - - -
c33998ab by Raymond Toy at 2024-04-02T16:40:51-07:00
Remove unneeded nop
ARM doesn't have a branch-delay slot.
- - - - -
d1f327a1 by Raymond Toy at 2024-04-02T16:40:51-07:00
Merge branch 'arm-rtoy-issue-76-rename-regs-2' into arm-rtoy-issue-76
- - - - -
10e3bf95 by Raymond Toy at 2024-04-02T16:40:51-07:00
Add support for trapping error and cerror
Recognize the error and cerror traps and handle them. Not yet really
tested, but looks plausible based on other implementations.
- - - - -
4dd42403 by Raymond Toy at 2024-04-02T16:40:51-07:00
Fix #74: Implement symbol-value
Basically copied the sparc version.
With this change, we can see that we're getting the symbol value of
the symbol `*LISP-INITIALIZATION-FUNCTIONS*`. The value is:
```
(gdb) call print(0x41b103ab)
$1= 0x41b103ab: list pointer
$2= car: 0x41b0fae9: #<ptr to function header>
$3= cdr: 0x41af476b: ($4=#<ptr to function header> $5=#<ptr to function header> $6=#<ptr to function header> $7=#<ptr to function header> ...)
```
- - - - -
e75a9e2b by Raymond Toy at 2024-04-02T16:40:51-07:00
Fix up call-named
Put in emit-not-implemented so we can tell and compute the target
address correctly because we forgot to handle the tag bits.
- - - - -
a929ce00 by Raymond Toy at 2024-04-02T16:40:51-07:00
Implement arch_internal_error_arguments
Based on sparc and ppc version where we just grab the address of the
word after the PC.
- - - - -
dff5c16c by Raymond Toy at 2024-04-02T16:40:51-07:00
Implement allocate-full-call-frame
Basically copied the sparc version.
- - - - -
05d272f7 by Raymond Toy at 2024-04-02T16:40:51-07:00
Merged in arm-rtoy-issue-74 (pull request #112)
Fix #74: Implement symbol-value
Approved-by: Raymond Toy <toy.raymond(a)gmail.com>
- - - - -
a674a7dc by Raymond Toy at 2024-04-02T16:40:51-07:00
Remove old attempts at call-named.
Just leave the sparc and RT versions; with the RT version being used.
- - - - -
214d316a by Raymond Toy at 2024-04-02T16:40:51-07:00
Rename and add new reg assignments like RT
This is a first step at implementing call-named (as mentioned in issue
#76).
As best as I can tell it would be really useful to have nfp and cname
as actual registers, which the RT port does. Thus, remove nl1 and nl2
and add nfp and cname. We didn't lose 2 of our non-descriptors
though. The RT port makes nfp and ocfp non-descriptors so we recover
that. We'll see if this works out ok.
So, rename and add the registers, updating the list of non-descriptors
and descriptors.
Update arm-assem.s with these changes. Note that we make nargs be r2,
the third arg to call_into_lisp. This slightly easier to read the
assembly code.
Update arm-lispregs.h to have the right register assignments and
names.
With this change running the kernel core gets as far as it used to
with the ame error message.
- - - - -
62a967f3 by Raymond Toy at 2024-04-02T16:40:51-07:00
Merged in arm-rtoy-issue-75 (pull request #113)
Fix #75: Implement allocate-full-call-frame
Approved-by: Raymond Toy <toy.raymond(a)gmail.com>
- - - - -
ce23df95 by Raymond Toy at 2024-04-02T16:40:51-07:00
Undo change to register-arg-names
We still have 3 args for this port.
- - - - -
c1ce717c by Raymond Toy at 2024-04-02T16:40:51-07:00
Merged in arm-rtoy-issue-76-rename-regs (pull request #114)
Rename and add new reg assignments like RT
- - - - -
3bdadde5 by Raymond Toy at 2024-04-02T16:40:51-07:00
Fix #76: Implement call-named
* Define COMPUTE-LRA-FROM-CODE
Copied from sparc.
We need this instruction to implement DEFINE-FULL-CALL for CALL-NAMED
(at least).
* Add missing closing paren
Not sure how this was deleted, but I didn't bother to figure it out.
* Fix typo in loadw/storew.
We had (typep '(signed-byte 13) offs). Duh! It should be
(typep offs '(signed-byte 13)).
* Merged master, fixing conflicts
* Reorder registers again.
Swap nfp with ocfp because r1 (nfp) is an output register and that
conflicts with the wired-tn nfp. I don't think ocfp is wired to
anything.
Update C and assembly code accordingly.
* Fix up call-named
Put in emit-not-implemented so we can tell and compute the target
address correctly because we forgot to handle the tag bits.
* Update arith.lisp because allow one arg to be on the unsigned
stack. (Not really sure this is needed, but the RT port does this.)
* Make NFP hard-wired like the RT port (and all the other RISC ports).
- - - - -
1a981f2d by Raymond Toy at 2024-05-18T07:04:32-07:00
Merge tag 'snapshot-2024-04' into arm-rtoy-sync-snapshot-2024-04
Snapshot 2024-04
- - - - -
11c53c25 by Raymond Toy at 2024-05-18T07:07:36-07:00
Merge remote-tracking branch 'bitbucket/arm-rtoy-sync-snapshot-2024-04'
- - - - -
de0dc767 by Raymond Toy at 2024-05-27T17:30:26+00:00
Fix #320: Select default Motif variant for x86_linux_clang
- - - - -
10a64447 by Raymond Toy at 2024-05-27T17:30:33+00:00
Merge branch 'issue-320-x86-linux-clang-motif-variant' into 'master'
Fix #320: Select default Motif variant for x86_linux_clang
Closes #320
See merge request cmucl/cmucl!221
- - - - -
a83d2d0e by Raymond Toy at 2024-05-27T21:34:27-07:00
Use cmucl-expected-failures branch for ansi-tests
For cmucl master, use the cmucl-expected-failures branch on ansi-tests
since this branch has the expected failures for the cmucl master
branch. Add a comment about it to so we are reminded about what
branch to use.
- - - - -
27115bdc by Raymond Toy at 2024-05-28T06:50:11-07:00
Update ansi-test on the correct branch.
Previously, if the ansi-test directory existed, we did a `git pull
--rebase` on whatever branch we happened to be on. Then a bit later
we switched to the desired branch. This meant that we updated some
branch, but then didn't get the updates for the branch we actually
wanted to sue.
Modify script so that we change branches to the desired branch before
pulling new changes.
Since the branch name is used in a couple of places, add an envvar to
hold the name of the desired branch.
- - - - -
d7ad55c5 by Raymond Toy at 2024-05-29T13:59:49+00:00
Fix #321: Rename Motif Config.x86 to Config.linux
- - - - -
f25af05f by Raymond Toy at 2024-05-29T13:59:56+00:00
Merge branch 'issue-321-rename-motif-config-x86' into 'master'
Fix #321: Rename Motif Config.x86 to Config.linux
Closes #321
See merge request cmucl/cmucl!222
- - - - -
3c52b576 by Raymond Toy at 2024-05-29T10:39:23-07:00
Merge branch 'master' into issue-316-support-roundtrip-char-casing
- - - - -
20 changed files:
- bin/clean-target.sh
- bin/create-target.sh
- bin/cross-build-world.sh
- bin/run-ansi-tests.sh
- + src/assembly/arm/alloc.lisp
- + src/assembly/arm/arith.lisp
- + src/assembly/arm/array.lisp
- + src/assembly/arm/assem-rtns.lisp
- + src/assembly/arm/support.lisp
- src/assembly/assemfile.lisp
- src/code/debug-int.lisp
- src/code/exports.lisp
- + src/compiler/arm/alloc.lisp
- + src/compiler/arm/arith.lisp
- + src/compiler/arm/array.lisp
- + src/compiler/arm/c-call.lisp
- + src/compiler/arm/call.lisp
- + src/compiler/arm/cell.lisp
- + src/compiler/arm/char.lisp
- + src/compiler/arm/debug.lisp
The diff was not included because it is too large.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/4e355decb7a1f22cddfd22…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/4e355decb7a1f22cddfd22…
You're receiving this email because of your account on gitlab.common-lisp.net.