Commit graph

169 commits

Author SHA1 Message Date
José Pedro
eff94b0f11 Improved code organization.
Added method tests.
Implemented Rethrow opcode.
2017-01-27 17:01:51 +00:00
José Pedro
f8e18e3fbc Fixed StringHelper.GetNumberString().
Changes in Conv*, Ld* and St* opcodes so that values with size < 4 bytes are extended to 4 bytes.
Implemented Not and Xor for values with size 8 bytes.
Added tests for bitwise operations, arithmetic operations and Conv* opcodes.
2017-01-24 20:54:07 +00:00
José Pedro
91094a87ca Fix MemberwiseClone.
Fix object sizes in Newobj.
Minor changes in Castclass and VTablesImpl.
2016-11-16 23:49:37 +00:00
José Pedro
e36451b6f9 Fixed try..finally blocks.
Added test for try..finally inside a finally.
2016-11-12 18:32:13 +00:00
José Pedro
39ea6ee678 Fixed return on foreach
Fixed Array.Clear
Minor changes
2016-11-09 00:08:23 +00:00
fanoI
a277900369 - Fixed ldarga so it will work again with types > bytes
- Fixed typos on DoubleTest
- Restored GetNumberString() as it was on my commit of the end of August
2016-10-10 21:43:38 +02:00
José Pedro
a860b2373a Fixed Newobj for string with length parameter.
Minor changes in debugging and FAT test messages.
Removed useless "if" in FAT, previously added by me.
2016-09-29 19:48:59 +01:00
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
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
Charles Betros
045fe549fb Merge branch 'master' 2016-08-18 16:55: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
00ae14ab24 Fix newobj for char[] 2016-08-10 19:27:52 -05: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
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
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
Charles Betros
f3bb974712 Progress on memory. Fix ldelem_ref. 2016-06-24 21:38:55 -05: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
e97100d4e6 More progress. 2016-06-22 11:27:21 -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