That works!
Now I have next same problem (offtop?)
UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.S

The same using of absolute addresses of CommonInterruptEntry
———
#
Exception0Handle:
    .byte   0x6a    #  push #VectorNum
    .byte   0
    pushq   %rax
    .byte   0x48, 0xB8
    .quad   ASM_PFX(CommonInterruptEntry)
    jmp     *%rax

————
It looks like more codes should be revised. And I vote to rewrite this part to 
nasm too.

On 28 авг. 2014 г., at 21:10, Sergey Isakov <isakov...@bk.ru> wrote:

> 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

------------------------------------------------------------------------------
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

Reply via email to