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