I understand. The value of 16GdtrBase is patched by C-codes in procedure
AsmPrepareThunk16()
So we may set
———
>> _16GdtrBase:
>> DQ 0
>
-----
On 28 авг. 2014 г., at 15:48, Andrew Fish <af...@apple.com> wrote:
>
> On Aug 28, 2014, at 4:30 AM, Sergey Isakov <isakov...@bk.ru> wrote:
>
>> But what can you do with absolute addressing to _NullSeg?
>> -------
>> _EntryPoint:
>> DD _ToUserCode - ASM_PFX(m16Start)
>> DW CODE16
>> _16Gdtr:
>> DW GDT_SIZE - 1
>> _16GdtrBase:
>> DQ _NullSeg
>>
>
> It looks like Thunk16.S patches the value.
> _EntryPoint: .long ASM_PFX(ToUserCode) - ASM_PFX(m16Start)
> .word CODE16
> _16Gdtr: .word GDT_SIZE - 1
> _16GdtrBase: .quad 0
> _16Idtr: .word 0x3ff
> .long 0
> Thanks,
>
> Andrew Fish
>
>
>> -------
>>
>> On 28.08.2014, at 15:16, Andrew Fish wrote:
>>
>>>
>>> On Aug 28, 2014, at 12:15 AM, Sergey Isakov <isakov...@bk.ru> wrote:
>>>
>>>>>
>>>>>
>>>>> Actually I just noticed you are getting an illegal text-relocation error.
>>>>> This is usually caused by an absolute relocation, and clang wants it to
>>>>> be IP relative. Basically Xcode/clang only supports a subset of the
>>>>> relocations that gcc uses for X64.
>>>> If I correctly understand you, compilation for Thunk16 is not possible in
>>>> XCLANG toolset because of idea of this codes?
>>>>
>>>
>>> No, but this toolchain puts extra restrictions on how things can be coded.
>>>
>>> For example Thunk16.asm contains absolute addressing
>>> lea r8, @RetFromRealMode
>>> But in Thunk16.S this is converted to IP relative addressing to support
>>> clang.
>>> lea L_RetFromRealMode(%rip), %r8
>>> Some of the .set address math in Thunk16.S is also working around
>>> addressing mode limitations, as it removes relocations from the code.
>>>
>>> Thanks,
>>>
>>> Andrew Fish
>>> ------------------------------------------------------------------------------
>>> Slashdot TV.
>>> Video for Nerds. Stuff that matters.
>>> http://tv.slashdot.org/_______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>
>> ------------------------------------------------------------------------------
>> Slashdot TV.
>> Video for Nerds. Stuff that matters.
>> http://tv.slashdot.org/_______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
> ------------------------------------------------------------------------------
> Slashdot TV.
> Video for Nerds. Stuff that matters.
> http://tv.slashdot.org/_______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel