Commit graph

421 commits

Author SHA1 Message Date
Charles Betros
4b67c02f26 Fixed delegates and moved some assemblers. 2016-09-28 23:24:04 -05:00
Charles Betros
73ef14d551 Working on delegates. 2016-09-26 06:55:37 -05:00
Charles Betros
95f4dbad77 More memory work. 2016-09-11 07:53:45 -05:00
Charles Betros
a9cb616f86 Merge from master. 2016-09-07 19:42:40 -05:00
fanoI
9610858423 Fixed Shr for long with count > 32 2016-09-08 00:27:01 +02:00
Charles Betros
1a63a35507 Fix for remainder op. 2016-09-07 17:03:15 -05:00
Charles Betros
c2b3094c57 Ongoing memory changes. 2016-09-07 14:49:22 -05:00
Charles Betros
4b5bc34445 Remove breakpoints. 2016-09-06 14:38:29 -05:00
Charles Betros
286d670276 Fix more tests 2016-09-06 14:34:19 -05:00
Charles Betros
87d964a602 More memory. 2016-09-05 01:01:54 -05:00
Charles Betros
1b18908a2b working on statics. 2016-09-04 09:57:47 -05:00
Charles Betros
4f13a49a85 Compiler changes for memory. 2016-09-03 00:40:33 -05:00
Charles Betros
85103e9d9b RAT progress 2016-08-26 07:02:18 -05:00
fanoI
4dbad9501d Merge pull request #435 from Unknown6656/date-time-functions
Added Stopwatch, Thread.Sleep and some CPUID implementation
2016-08-24 19:39:12 +02:00
fanoI
e2f363a200 Merge branch 'master' of https://github.com/CosmosOS/Cosmos
# Conflicts:
#	Tests/Cosmos.Compiler.Tests.Bcl/System/DoubleTest.cs
#	Tests/Cosmos.Compiler.Tests.Bcl/System/SingleTest.cs
2016-08-22 17:12:59 +02:00
fanoI
ad960c9a1a Continuation of Float work
- Fixed Single.ToString() on special cases (infinities, NaN and 0) and aumented the range of printable values
- Fixed Double.ToString(): it always printed "Double Overrange" for a bug in opcode ldarga
- Fixed opcode ldarga: the displacement of the argument variable was off of 4 bytes
- Fixed opcodes shr, shr_un and shl when the shift was more that 32 bytes, added to BCL relative tests
- Added BLC tests regarding BitConverter and unsafe code
- Moved the meat of the code of Single.ToString() and Double.ToString() to the class StringHelper together with the analogous methods for numer types
- Re-added _floatsignbit to CosmosAssembler.cs so the neg test should not fail anymore
- Removed all code relative to x87 that I had left under #if false
- Clean up
2016-08-22 16:31:22 +02:00
Unknown6656
a7f72cc2e6 Fixed bool-bool-operations 2016-08-19 18:50:03 +02:00
Charles Betros
045fe549fb Merge branch 'master' 2016-08-18 16:55:23 -05:00
Charles Betros
565053414d Merge pull request #369 from fanoI/master
- Initial work as for https://github.com/CosmosOS/Cosmos/issues/359
2016-08-18 16:32:23 -05:00
fanoI
ec6e231ac9 - Bugfix Shr_un does not really did a shift right unsigned
- Bugfix Shr does not really did a shift right signed
- Bigfix ShiftRighDouble was implemented as  ShiftLeftDouble
2016-08-18 20:10:10 +02:00
Charles Betros
73b81c7bcc Working on rat. 2016-08-18 07:32:45 -05:00
Charles Betros
b8f35da19c Merge branch 'master' into rat 2016-08-10 22:22:22 -05:00
Charles Betros
00ae14ab24 Fix newobj for char[] 2016-08-10 19:27:52 -05:00
Kevin
23c7e4c01e Fixed (short-short) op bug 2016-08-10 13:15:12 -04:00
fanoI
e6143b75df Source lose some changes... forced them! 2016-07-31 19:55:12 +02:00
fanoI
e36aeefd1a Trying to enanche the constant variables declaration:
- Added a version of XS.SSE.MoveSS that accepts a String as source (to use the constant variable name)
- Added XS.SSE2.XorPd
- Neg opcode declares the constant inline and not uses XS.LiteralCode anymore

Please note that this code actually fails the second float neg test for no valid reason!
2016-07-31 17:01:50 +02:00
fanoI
6e1bfb8d92 - Implemented Neg Opcode for floating point
- Added test for Neg OpCode for float and double
- Conv.U8 wrongly changed the sign of double before converting it to ulong
- Div_Un, Add_Ovf and Add_Ovf_Un had code for floating point but they should not have that for ECMA specs
2016-07-17 17:05:00 +02:00
fanoI
0af7c5b78f - Finally the conversion of an ulong to a double works (IL opcode conv.r.un is completed)
- TestRunner should not be Run in process!
- Removed all unused 'variables' in CosmosAssembler.cs
- Fixed X#: FloatStoreAndPop() ignored the RegisterSize value
2016-07-03 15:00:04 +02:00
Charles Betros
37a4e71deb Merge some compiler changes from master. 2016-06-29 23:18:04 -05:00
Charles Betros
b7cd470c33 Merge 2016-06-28 23:36:03 -05:00
Charles Betros
607db8f5ff Merge missing stuff from plug manager. 2016-06-28 23:32:53 -05:00
Matthijs ter Woord
c74800a073 Merge branch 'master' into rat 2016-06-28 10:29:07 -04:00
Charles Betros
1bb7d6335f Merge from master. 2016-06-26 13:44:56 -05:00
fanoI
56beccb8af Merge branch 'master' of https://github.com/CosmosOS/Cosmos
# Conflicts:
#	source/Cosmos.sln
2016-06-26 15:09:13 +02:00
fanoI
4e1c505e52 Merge branch 'master' of https://github.com/CosmosOS/Cosmos
# Conflicts:
#	Tests/Cosmos.Compiler.Tests.SingleEchoTest/Kernel.cs
#	source/Cosmos.Assembler/Assembler.cs
#	source/Cosmos.IL2CPU/IL/Add.cs
#	source/Cosmos.IL2CPU/IL/Ceq.cs
#	source/Cosmos.IL2CPU/IL/Cgt.cs
#	source/Cosmos.IL2CPU/IL/Cgt_Un.cs
#	source/Cosmos.IL2CPU/IL/Clt.cs
#	source/Cosmos.IL2CPU/IL/Clt_Un.cs
#	source/Cosmos.IL2CPU/IL/Conv_I2.cs
#	source/Cosmos.IL2CPU/IL/Conv_I4.cs
#	source/Cosmos.IL2CPU/IL/Conv_I8.cs
#	source/Cosmos.IL2CPU/IL/Conv_R4.cs
#	source/Cosmos.IL2CPU/IL/Conv_R_Un.cs
#	source/Cosmos.IL2CPU/IL/Conv_U1.cs
#	source/Cosmos.IL2CPU/IL/Conv_U2.cs
#	source/Cosmos.IL2CPU/IL/Div.cs
#	source/Cosmos.IL2CPU/IL/Mul.cs
#	source/Cosmos.IL2CPU/IL/Sub.cs
2016-06-26 15:02:38 +02:00
Matthijs ter Woord
c083c8f35f Add kernel panic method to debugstub. 2016-06-25 19:33:26 -04:00
Matthijs ter Woord
6e5d7620a9 Little progress. 2016-06-25 17:37:45 -04:00
Matthijs ter Woord
38e897543b Ongoing progress integrating new memory model. 2016-06-25 15:30:58 -04:00
Matthijs ter Woord
3bfaf7f670 Make plugmanager not throw exceptions when plug targets are not found. 2016-06-25 12:16:51 -04:00
Matthijs ter Woord
1433340ba5 Generic plugs work now. 2016-06-25 10:52:50 -04:00
Charles Betros
f3bb974712 Progress on memory. Fix ldelem_ref. 2016-06-24 21:38:55 -05:00
Matthijs ter Woord
19160c30d4 Now plugs which aren't being used aren't being compiled anymore. 2016-06-24 15:26:31 -04:00
Charles Betros
bae772237f Added missing debugstub plug. 2016-06-24 10:27:00 -05:00
Matthijs ter Woord
610f2b652a Geting closer on zork. 2016-06-23 18:12:28 -04:00
Matthijs ter Woord
3bc4ea78dd Some basic improvements. 2016-06-23 16:36:08 -04:00
Matthijs ter Woord
989cc0cb4b . 2016-06-23 11:04:34 -04:00
Matthijs ter Woord
83e1ae9edc Progress. 2016-06-22 16:32:16 -04:00
Matthijs ter Woord
96bf9209de Ongoing fixes. 2016-06-22 15:55:32 -04:00
Matthijs ter Woord
e97100d4e6 More progress. 2016-06-22 11:27:21 -04:00
Matthijs ter Woord
8a40af1b87 More ongoing progress. Getting closer to being able to run again.. 2016-06-21 21:03:46 -04:00
Matthijs ter Woord
7f94d132be Even more ongoing progress. 2016-06-21 20:34:27 -04:00
Matthijs ter Woord
1ac8619640 More ongoing progress. 2016-06-21 20:00:33 -04:00
Matthijs ter Woord
ada707f1d6 Ongoing progrss. 2016-06-21 19:19:08 -04:00
Matthijs ter Woord
4641286f0f More progress on ram. 2016-06-21 18:57:38 -04:00
Matthijs ter Woord
5e8a93b0c3 Ongoing work on memory. 2016-06-21 18:34:23 -04:00
Matthijs ter Woord
b5ff4a75db Ongoing memory work. 2016-06-21 17:16:51 -04:00
Matthijs ter Woord
d592b2dc0d Ongoing memory work. 2016-06-21 17:16:44 -04:00
fanoI
49192ffa24 - Conv.r.un is now partially implemented: an uint can be converted to double, not working code for ulong to double conversion
- Added (not working) test for ulong to double conversion
- Added to Assembler.cs costants needed for floating point conversions
2016-06-21 23:03:37 +02:00
Charles Betros
14f6f6247c Merge 2016-06-21 10:45:33 -05:00
Charles Betros
a94c40f605 Fixed some issues with ldelema and stfld. 2016-06-21 10:42:02 -05:00
Matthijs ter Woord
65c83f9491 Ongoing changes for memory. 2016-06-20 19:44:16 -04:00
Matthijs ter Woord
075e64d991 . 2016-06-20 16:11:16 -04:00
Matthijs ter Woord
d62d337b90 Fixed the exceptions. 2016-06-20 13:39:17 -04:00
Matthijs ter Woord
6be879d25a Progress on heap. 2016-06-20 13:10:34 -04:00
Matthijs ter Woord
4bdfbab03c Merge remote-tracking branch 'origin/master' into rat 2016-06-20 12:51:11 -04:00
Charles Betros
3cc57fdd5c Merge branch 'master' 2016-06-19 18:32:48 -05:00
Charles Betros
a194f1dd73 Disable Frotz build. 2016-06-19 12:35:03 -05:00
Matthijs ter Woord
f311499e26 Ongoing changes for RAT. 2016-06-19 12:47:40 -04:00
Matthijs ter Woord
6ea1ca7255 Object pointer size is bumped up to 8. First the actual data pointer, then the pointer to the next object pointer 2016-06-18 15:06:30 -04:00
Matthijs ter Woord
030ba36636 Fix loading fields larger than 4 bytes from structs on the stack. 2016-06-18 14:00:58 -04:00
Matthijs ter Woord
35a15fe005 Start with increasing object reference size. 2016-06-18 12:25:17 -04:00
Matthijs ter Woord
ba808f2bc6 . 2016-06-17 18:35:22 -04:00
Matthijs ter Woord
efb7823d9f . 2016-06-17 16:40:46 -04:00
Matthijs ter Woord
5d66d12d69 . 2016-06-17 15:18:29 -04:00
Matthijs ter Woord
17dcca9a91 . 2016-06-17 15:01:56 -04:00
Matthijs ter Woord
8ed25a38ea . 2016-06-17 14:34:31 -04:00
Matthijs ter Woord
adb9d3b988 . 2016-06-17 14:30:54 -04:00
Matthijs ter Woord
991e81a5c3 . 2016-06-17 13:46:05 -04:00
Matthijs ter Woord
7a8e62b2eb . 2016-06-17 13:28:56 -04:00
Matthijs ter Woord
cc44dc021e . 2016-06-17 13:16:01 -04:00
Matthijs ter Woord
ac1f59034d . 2016-06-17 12:58:26 -04:00
Matthijs ter Woord
4cfc7aabe7 . 2016-06-17 08:23:48 -04:00
Matthijs ter Woord
9d203f141e . 2016-06-16 20:08:41 -04:00
Matthijs ter Woord
8a87dfff87 . 2016-06-16 19:19:14 -04:00
Matthijs ter Woord
40ff5ad8a7 . 2016-06-16 19:04:26 -04:00
Matthijs ter Woord
990591c9ff . 2016-06-16 18:47:08 -04:00
Matthijs ter Woord
02b8c2eddf . 2016-06-16 18:27:45 -04:00
Matthijs ter Woord
a1d0215d86 . 2016-06-16 17:53:08 -04:00
Matthijs ter Woord
7417d1a1b1 . 2016-06-16 17:35:09 -04:00
Matthijs ter Woord
78771994f8 . 2016-06-16 17:24:46 -04:00
Matthijs ter Woord
c4af87a933 . 2016-06-16 16:54:53 -04:00
Matthijs ter Woord
dada8dcc68 . 2016-06-16 15:05:39 -04:00
Matthijs ter Woord
7657070e1e . 2016-06-16 14:33:38 -04:00
Matthijs ter Woord
2fed5169e1 . 2016-06-16 13:41:29 -04:00
Matthijs ter Woord
00c205ba68 . 2016-06-16 13:06:44 -04:00
Matthijs ter Woord
dd1710d742 . 2016-06-16 12:59:00 -04:00
Matthijs ter Woord
246898198d . 2016-06-16 12:33:07 -04:00
Matthijs ter Woord
be7b8a2a94 . 2016-06-16 12:30:38 -04:00
Matthijs ter Woord
f1f5e88c3d . 2016-06-16 11:41:19 -04:00
Matthijs ter Woord
550901b19a . 2016-06-15 18:10:54 -04:00
Matthijs ter Woord
594efd2fd7 . 2016-06-15 16:50:40 -04:00
Matthijs ter Woord
2ce5c4cb1f . 2016-06-15 16:47:21 -04:00
Matthijs ter Woord
fc902e5a68 . 2016-06-15 16:38:45 -04:00
Matthijs ter Woord
98cd7da12f . 2016-06-15 16:31:21 -04:00
Matthijs ter Woord
6b5373da23 . 2016-06-15 15:16:52 -04:00
Matthijs ter Woord
dd55bff2c1 . 2016-06-15 15:11:55 -04:00
Matthijs ter Woord
5979ad032e . 2016-06-15 15:04:50 -04:00
Matthijs ter Woord
12d1ae5614 . 2016-06-15 12:50:06 -04:00
Matthijs ter Woord
5803a95381 . 2016-06-15 12:36:58 -04:00
Matthijs ter Woord
f86cbfb6bf . 2016-06-15 12:35:46 -04:00
Matthijs ter Woord
ff5662e9aa . 2016-06-15 12:22:55 -04:00
Matthijs ter Woord
1dc41f1a4b . 2016-06-15 12:16:27 -04:00
Matthijs ter Woord
f6f0bab95b . 2016-06-15 12:03:44 -04:00
Matthijs ter Woord
feef7db59a . 2016-06-15 11:45:30 -04:00
Matthijs ter Woord
bbb8265166 . 2016-06-15 09:55:11 -04:00
Matthijs ter Woord
f5e3ea6da9 . 2016-06-15 08:39:19 -04:00
Matthijs ter Woord
456772f88f . 2016-06-14 21:25:40 -04:00
Matthijs ter Woord
9a2f6714b5 . 2016-06-14 20:58:19 -04:00
Matthijs ter Woord
ee36382c27 . 2016-06-14 20:39:18 -04:00
Matthijs ter Woord
336020b418 . 2016-06-14 20:36:14 -04:00
Matthijs ter Woord
1b42377138 . 2016-06-14 17:53:14 -04:00
Matthijs ter Woord
d5dc2328b0 More refactoring. 2016-06-14 16:46:11 -04:00
Matthijs ter Woord
e96dbf6764 . 2016-06-14 15:39:58 -04:00
Matthijs ter Woord
ebb1eae7fd First stage of compiler refactorings 2016-06-14 15:26:39 -04:00
Matthijs ter Woord
4ed9d246ae First compiler refactoring. 2016-06-13 08:27:59 -04:00
Matthijs ter Woord
91d891244c . 2016-06-12 09:25:09 -04:00
Matthijs ter Woord
4d6fceb9e7 First step in improving x# and compiler. 2016-06-11 16:13:13 -04:00
Charles Betros
455ee32d5b Merge branch 'master' of https://github.com/CosmosOS/Cosmos.git 2016-06-10 16:44:54 -05:00
Matthijs ter Woord
6e37341d08 Remove .ilinstructions file creation. 2016-06-10 13:33:39 -04:00
Matthijs ter Woord
82330b4b48 Initial work to move out the heap to a separate project. 2016-06-10 11:42:30 -04:00
Matthijs ter Woord
c4929d43a5 We don't need to call the class constructor if we're already in the class itself. 2016-06-09 16:48:43 -04:00
Matthijs ter Woord
a492f0eccc Mark heap implementation with PlugRequired 2016-06-09 10:08:25 -04:00
Matthijs ter Woord
659dc538bf Potentially fix the build? 2016-06-04 19:11:01 +02:00
Matthijs ter Woord
2bd58182af Fix plugs referencing non-existing types. 2016-06-04 19:01:45 +02:00
fanoI
a5bd158514 Merge branch 'master' of https://github.com/CosmosOS/Cosmos
# Conflicts:
#	Tests/Cosmos.Compiler.Tests.Bcl/Kernel.cs
#	source/Cosmos.Core/CPU.cs
2016-05-28 14:33:11 +02:00
sgetaz
2de222bb2d Plug attribute (#196)
Plug required attribute.
2016-05-25 09:17:06 -05:00
fanoI
58c556f085 - Initial work as for https://github.com/CosmosOS/Cosmos/issues/359
- Added Console.Clear() to Guess Demo (the boot text remained on screen)
- Added to BCL test BitConverterTest (all failing), test for single / double arithmetic operations
- Added to TestRunner BCLTest
2016-05-21 18:55:39 +02:00
Charles Betros
f19063ccc9 Fixed ldelema and disabled float and double tests. 2016-05-15 13:44:09 -05:00
Charles Betros
a2d610e1db Reversed return values. 2016-04-15 13:12:57 -05:00
Charles Betros
3fcc2860a9 FAT file system work. 2016-04-14 13:27:18 -05:00
Charles Betros
ef9282836b Fixed keyboard interrupt, generics, and double. 2016-04-14 13:26:54 -05:00
Charles Betros
89d021772b Added byref types so they work with constrained callvirt. 2016-03-24 13:24:09 -05:00
Charles Betros
83ad5f34cf Fixed some issues with wtong types on the stack. 2016-03-24 08:52:02 -05:00
Charles Betros
2de021685e Fix up packages. 2016-03-13 13:14:37 -05:00
Charles Betros
8937b5c11a Merge branch 'master' of https://github.com/CosmosOS/Cosmos.git 2016-03-13 12:49:12 -05:00
Charles Betros
0bef9a8fac Updating solution config. 2016-03-13 12:27:58 -05:00
fanoI
35583c657a Merge branch 'master' of https://github.com/CosmosOS/Cosmos
# Conflicts:
#	Demos/Guess/GuessOS.cs
#	Tests/Cosmos.Compiler.Tests.Bcl/Kernel.cs
#	source/Cosmos.System.Plugs/Cosmos.System.Plugs.csproj
2016-03-07 21:23:11 +01:00
Charles Betros
4a3b6a50df Fixed up project and solution configurations and remove jetbrains annotations. 2016-03-06 17:33:21 -06:00
Charles Betros
c12022c893 Got constrained callvirt working. 2016-03-05 23:56:27 -06:00
fanoI
eb533357b0 - Correctly plugged Enum's GetHashCode()
- Removed GetHashCode() methods that were not really needed
- Plugged class CultureInfo for GetHashCode()
- Plugged class Runtime.CompilerServices for GetHashCode()
- Plugged class RuntimeTypeImpl for GetHashCode()
- Fixed tests that were failing using true .NET GetHashCode()
- Fixed IL Interpreter added SHIFT, AND, XOR... for sbyte and short
2016-03-05 23:10:06 +01:00