Commit Graph

56 Commits

Author SHA1 Message Date
Brian Callahan
294ccae3be emg 1.7 2014-07-10 18:11:43 -04:00
Serge Vakulenko
1c4e562363 Added kernel configuration for PICadillo-35T board. 2014-06-23 22:15:51 -07:00
Brian Callahan
70b8d93b21 Update emg man page. 2014-06-17 08:43:13 -04:00
Serge Vakulenko
5fa78e772b Moved aout sources to separate directory.
Fsutil and modff license changed to BSD style.
2014-06-04 11:46:33 -07:00
Brian Callahan
04208ea903 Remove unusued variable... put this down and walk away until tomorrow. 2014-05-29 18:20:55 -04:00
Brian Callahan
e003436e91 Dumbest off-by-one ever... 2014-05-29 18:16:24 -04:00
Brian Callahan
29904aacd7 I should trust my instincts. I had this right the first time. 2014-05-29 18:03:39 -04:00
Brian Callahan
dbe51ae294 This is cleaner, prevent the percent from being greater than 100. 2014-05-29 15:06:16 -04:00
Brian Callahan
87489937bf Add PgUp and PgDn scrolling to emg, release this as emg 1.6
Make sure emg.keys is installed.
2014-05-29 14:31:58 -04:00
Brian Callahan
bbba8d6f95 Remove all hardcoded make commands, changing them to ${MAKE}.
This is a first step towards being able to build RetroBSD on *BSD.
2014-05-25 16:25:15 -04:00
Sergey
b3abe580bd Added emg editor from github.com/ibara/emg. 2014-05-24 19:37:02 -07:00
Alexey Frunze
e725ab2b44 Update cpp to pcc 1.0.0's cpp
Update the preprocessor to fix some of its bugs.
2014-05-14 02:49:38 -07:00
Serge Vakulenko
dc1a7a5f25 Merge pull request #27 from alexfru/master
C compiler improvements
2014-05-10 00:15:24 -07:00
Alexey Frunze
17f417f519 C compiler improvements
Fix malloc(0) issue (#26) in cpp.
Reduce cpp size and allow for larger inputs.
Clean up unused variables in Smaller C.
2014-05-09 23:53:52 -07:00
Serge Vakulenko
8871099aab Assembler modified to support local common blocks. 2014-05-08 20:00:57 -07:00
Serge Vakulenko
6a2230d867 Fixed couple of issues in assembler:
(1) incorrect opcodes for bnez and beqz instructions;
(2) macro li simplified when low part of constant is zero.
2014-05-08 19:11:19 -07:00
Serge Vakulenko
2395d5a9fa Assembler mode ".set at" enabled by default. 2014-05-07 20:27:09 -07:00
Serge Vakulenko
60c7fe0fd3 Merge pull request #18 from RetroBSD/codesourcery
*.mk files modified for compatibility with Mentor Sourcery CodeBench Lite toolchain
2014-05-07 11:39:51 -07:00
Serge Vakulenko
4be5e54c38 Assembler and spi driver fixed for compatibility with latest gcc. 2014-05-07 11:15:56 -07:00
Serge Vakulenko
5e58ad0f3d Merge pull request #23 from alexfru/master
Smaller C: fixes, improvements
2014-05-07 00:28:08 -07:00
Serge Vakulenko
6ccaa1a940 Merge branch 'master' into codesourcery.
All Matt's advices applied.
2014-05-06 19:55:35 -07:00
Sergey
3c025a1e89 Fixed build errors/warnings for gcc 4.7.2. 2014-05-05 23:35:40 -07:00
Alexey Frunze
cdf8933448 Merge remote-tracking branch 'upstream/master' 2014-05-05 21:14:06 -07:00
Serge Vakulenko
058804256a Fixed bug in assembler: incorrect immediate in subu macro. 2014-05-05 20:17:31 -07:00
Serge Vakulenko
a433085324 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2014-05-05 11:16:30 -07:00
Serge Vakulenko
f39a1429bf Merge pull request #21 from RetroBSD/cc-use-smallerc
/bin/cc command modified to use SmallerC compiler by default (not LCC).
2014-05-05 11:16:06 -07:00
Alexey Frunze
06d027b4c5 Merge remote-tracking branch 'upstream/master' 2014-05-04 01:23:36 -07:00
Sergey
6f47acb2ae Fixed bug in assembler, introduced by previos patch.
(Negative offsets in LW/SW not recognized)
Also, modified stdlib.h for compatibility with SmallerC.
2014-05-03 23:56:57 -07:00
Alexey Frunze
a2bc88bdb6 fixes, improvements, __interrupt
Fixes/workarounds:
- octal escape sequence is to be terminated no later than after three
octal digits:
"\1011" is now parsed equivalently to "A1"
- workaround truncation of immediate operands to 16 bits in MIPS
instructions addi[u], subi[u], slti[u], andi, ori, xori in RetroBSD's as
(disabled since as is being fixed).

Improvements:
- warn on string literal truncation when initializing array of char
- generate trap/break-less form of MIPS div[u]

New:
- experimental support for __interrupt functions (x86/huge only)
2014-05-03 18:55:18 -07:00
Sergey
e0ba612250 Range check fixed in assembler. 2014-05-03 17:33:56 -07:00
Sergey
babef284ae Assembler: mode ".set at" required to enable wide immediates in 2-red macros. 2014-05-03 16:55:40 -07:00
Sergey
51a8fd3313 Assembler: added support for large constants for 2-reg variants (macros)
of 3-reg instructions (add, addu, and, or, slt, sltu, sub, subu, xor).
When mode ".set at" enabled, an additional LI instruction is inserted
sing $1 as a scratch register.
2014-05-03 16:34:19 -07:00
Sergey
f67b9db8b5 Merge branch 'master' into cc-use-smallerc 2014-05-03 01:31:06 -07:00
Sergey
777ad1471b Smlrc: option -v moved to target-dependent part.
Fixed bug in simulator: read from incorrect file descriptor when
the second SD card not configured.
2014-05-03 01:28:48 -07:00
Sergey
aff46df8dd Merge branch 'master' into cc-use-smallerc. 2014-05-03 00:37:37 -07:00
Serge Vakulenko
6f15f0ba23 Merge branch 'exec-elf' of https://github.com/RetroBSD/retrobsd 2014-05-02 22:04:16 -07:00
Serge Vakulenko
6f8e71c1b8 Include files modified for compatibility with SmallerC.
Fixed bug in C preprocessor: buffer size reduced to avoid allocation failure.
Added option -v for smlrc.
New example stdarg.c: a demo of function with variable arguments.
2014-05-02 22:00:30 -07:00
Serge Vakulenko
f105cb5bbd /bin/cc command modified to use SmallerC compiler by default (not LCC).
For LCC, please use /bin/lcc instead.

I believe SmallerC is mature enough to try to use it as a primary compiler.
System include files might need some changes (ifdefs) to adapt.
2014-05-01 10:41:41 -07:00
Alexey Frunze
b652f52cb6 Smaller C: Improve pointer initialization
The following global/static pointer initialization should now work:

static char* p1 = "abc" + 1;
static char* p2 = "abc" - 1;
static char* p3 = 1 + "abc";
static int a333[3][3][3];
static int* pa333_111 = &a333[1][1][1];

Other seemingly (and in fact actually) functionality preserving changes
are only to reduce code size when self compiling for DOS using -seg16.
Improvements and fixes require space, sigh.
2014-04-26 15:53:41 -07:00
Serge Vakulenko
b98de3368e *.mk configuration files modified for compatibility with latest version
of Mentor Sourcery CodeBench Lite toolchain
(https://sourcery.mentor.com/GNUToolchain/release2641).
All detected issues fixed.
2014-04-24 21:06:37 -07:00
Serge Vakulenko
1b15bcff49 Fixed bug in assembler: incorrect offset in LUI instruction. 2014-04-24 11:56:01 -07:00
Serge Vakulenko
3a38f291a7 Merged kernel support for ELF executable format from karolina.lindqvist.
Now kernel can directly run executables generated by gcc.
2014-04-23 21:43:09 -07:00
Alexey Frunze
bc98f62608 Fix a benign typo 2014-04-22 02:57:42 -07:00
Alexey Frunze
fd04710c23 Fix initialization
In the following
typedef struct S0 { char ac[4]; } T1;
int v26 = (int)&((T1*)0)->ac[3];
int v27 = &((T1*)0)->ac[3];
v27 should be initialized to 3 just as v26.
2014-04-21 01:08:49 -07:00
Alexey Frunze
a0a4e242e6 Improve variable initialization in Smaller C
Improvements:
- support initialization of multidimensional arrays
- support initialization of structures
- support initialization of structures and arrays inside functions
- support static inside functions

Notes:
- Only fully-bracketed (sic) initialization of arrays is supported.
- && and || have been partially replaced with & and | to slightly reduce
code size when self compiling for DOS using -seg16.
2014-04-20 20:59:47 -07:00
Matt Jenkins
a7d0838ea8 Created global version variable 2014-04-20 20:24:18 +01:00
Matt Jenkins
b5a8255248 Changed %2 to %s in string format 2014-04-19 13:37:42 +01:00
Matt Jenkins
22c2f77d84 Added "create" flag to AR commands 2014-04-19 11:46:17 +01:00
Matt Jenkins
ad74c37318 Disabled verbose execution 2014-04-19 11:39:55 +01:00
Matt Jenkins
7205bb7ef2 Switched from mktemp to mkstemp 2014-04-19 11:36:18 +01:00