[dmd-internals] Modifying the dmd compiler to add support for bitfields
Walter Bright
walter at digitalmars.com
Mon Jan 9 10:10:55 PST 2012
I'm glad you're aware of it.
Anyhow, the compiler (optimizer and back end) can already deal with bit fields
as it is based on a C compiler. The bitfield ops are replaced by mask and shift
in the cgelem.c code.
dt_t is simply a way to represent static data.
On 1/9/2012 3:35 AM, Sandeep Datta wrote:
> Hi Walter,
>
> Thanks for the reply. I am aware of the mixin based solution but the main
> motivation for me at this point is getting to know the D compiler well. And
> IMHO native support for bitfields will be a welcome new change. I am trying to
> write an OS/kernel (https://github.com/SDX2000/Deimos) in D and as far as
> machine hugging code is concerned bitfields and unions are a mainstay. The
> mixin syntax looks jarring and alien. Please see
> https://github.com/SDX2000/Deimos/issues/1 for what I am trying to accomplish.
>
> I am particularly curious about the dt_t data structure you seem to be using
> how does this work?
>
> Regards,
> Sandeep Datta.
>
> On Mon, Jan 9, 2012 at 5:53 AM, Walter Bright <walter at digitalmars.com
> <mailto:walter at digitalmars.com>> wrote:
>
> Bit fields are already done in D using a library solution:
>
> http://d.digitalmars.com/2.0/phobos/std_bitmanip.html
>
>
> On 1/8/2012 7:49 AM, Sandeep Datta wrote:
>> [Cross post from the D news group]
>>
>> Hi All,
>>
>> To gain a better understanding of how the D compiler works I am
>> trying to implement support for bit fields in structures. I have
>> modified the parser code to admit the following syntax (for now)...
>>
>> struct A{
>> uint:8 a;
>> uint:5 b;
>> uint:* unused; //Takes up the remaining space.
>> //Raise an error when the computed size is zero.
>> }
>>
>> You can see my changes here...https://github.com/SDX2000/dmd
>>
>> I have been trying to work out a strategy for modifying the compiler
>> code generation for quite some time now but haven't been able to
>> make much headway in this direction.
>>
>> I would appreciate any help at this point.
>>
>> Regards,
>> Sandeep Datta.
>>
>>
>> _______________________________________________
>> dmd-internals mailing list
>> dmd-internals at puremagic.com <mailto:dmd-internals at puremagic.com>
>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com <mailto:dmd-internals at puremagic.com>
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>
>
>
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/dmd-internals/attachments/20120109/f0b9dcef/attachment-0001.html>
More information about the dmd-internals
mailing list