-
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@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@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@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@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@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'