Bona Fide OS Development http://forums.osdever.net/ |
|
WEIRD?!!?!?!?!?! http://forums.osdever.net/viewtopic.php?f=5&t=205 |
Page 1 of 1 |
Author: | AngelOS10 [ Thu Mar 04, 2010 3:22 am ] |
Post subject: | WEIRD?!!?!?!?!?! |
Today i was compiling my OS it went fine but then a minor change and Poof! stops and says unresolved symbol linker error 2021: unresolved symbol __aulshr refrenced in fuction i86_cpu_initialize(); |
Author: | thepowersgang [ Thu Mar 04, 2010 4:04 am ] |
Post subject: | Re: WEIRD?!!?!?!?!?! |
Google is your friend, my friend. After a quick google, it seems that it is what VC uses to handle some sort of integer operation (I think "Unsigned Long SHift Right" or something) Do a little searching and you should solve your problem. |
Author: | Terry A. Davis [ Thu Mar 04, 2010 5:00 am ] |
Post subject: | Re: WEIRD?!!?!?!?!?! |
My LoseThos 64-bit compiler converts all values to 64-bit before working on them. If you have a constant, it gets converted to 64-bits. U0 DoIt() { I8 i=0x8000000000000000; coutln i>>1; } That operates normally. U0 DoIt() { U8 i=0x8000000000000000; coutln i>>1; } That operates normally. U0 DoIt() { I4 i=0x80000000; coutln i>>1; } That operates unexpectedly, because the 0x80000000 value is converted to 64-bit and does not overflow. It's stored in a 64-bit register for the remainder. This is the correct LoseThos code for what you want. U0 DoIt() { I4 i=-0x80000000; coutln i>>1; } |
Author: | Agalloch [ Thu Mar 04, 2010 6:01 am ] |
Post subject: | Re: WEIRD?!!?!?!?!?! |
This problem was already posted. http://forums.osdever.net/viewtopic.php?f=5&t=200 It was also responded to, and moved to the correct forum. Moved and Locked. |
Page 1 of 1 | All times are UTC - 6 hours [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |