Some questions

Guillermo Adrián Molina guille at losmolina.com.ar
Fri Apr 27 15:51:00 UTC 2007


> Guillermo Adrián Molina writes:
>  > Once everything is compiled I generate an assembler file for every
> class,
>  > for example “ClassName.s”. This could be a little confusing. I already
>  > compiled everything, why would I need to generate assembler files?
> Because
>  > assembler files are very handy to represent the image, take a look into
> a
>  > real method:
>  >
>  > /* Test>>test Method bytecodes */
>  > .global Test_Class_test_bytecodes
>  > Test_Class_test_bytecodes:
>  > 	.int ByteArray + 1
>  > 	.int 154 /* Number: 77 */
>  > 	.int 17888 /* Number: 8944 */
>  > .global _Test_Class_test_bytecodes
>  > _Test_Class_test_bytecodes:
>  > 	.byte 85, 137, 229, 139, 69, 8, 80, 184
>  > 	.int Test_Class_test_literals + 1
>  > 	.byte 139, 64, 11, 232
>  > 	.int getMethodIP - 4 - .
>  > 	.byte 255, 208, 129, 196, 4, 0, 0, 0, 139, 69, 8, 80, 184
>  > 	.int Test_Class_test_literals + 1
>  > 	.byte 139, 64, 15, 232
>  > 	.int getMethodIP - 4 - .
>  > 	.byte 255, 208, 129, 196, 4, 0, 0, 0, 80, 184
>  > 	.int Test_Class_test_literals + 1
>  > 	.byte 139, 64, 19, 232
>  > 	.int getMethodIP - 4 - .
>  > 	.byte 255, 208, 129, 196, 4, 0, 0, 0, 201, 195
>  > 	.align 2
>
> The first versions of Exupery generated gas assembly which
> I compiled then linked against C support code. Even after
> Exupery could compile inline I kept the code around to generate
> assembly instructions for several releases. It eventually got
> deleted as it wasn't adding any value.
>
> If you're planning on continuing generating assembly then it
> might be worthwhile to try and find the code to produce assembly and
> update it to deal with the current instruction selector and the
> instructions that have been added since I stopped maintaining it.
>
Well, it is good to know that, but I need to generate machine code, not
assembler code. I am generating assembler files just to make it easier to
mantain the relationship between objects. As you can see from the code,
the C compiler doesn't know (at compile time) what are those bytes. Before
I used exupery, I was generating assembler, but thanks to exupery, that
step isn't necessary.
In the future I am planning to generate some kind of relocatable objects
(instead of assembler files), that could be loaded on demand at run time.

Cheers, Guille
> Bryce
> _______________________________________________
> Exupery mailing list
> Exupery at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
>




More information about the Exupery mailing list