mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
add support for encoding the lo14 forms used for a few PPC64 addressing
modes. For example, we now get: ld r3, lo16(_G)(r3) ; encoding: [0xe8,0x63,A,0bAAAAAA00] ; fixup A - offset: 0, value: lo16(_G), kind: fixup_ppc_lo14 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119133 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -552,12 +552,13 @@ def LDtoc: Pseudo<(outs G8RC:$rD), (ins tocentry:$disp, G8RC:$reg),
|
||||
"",
|
||||
[(set G8RC:$rD,
|
||||
(PPCtoc_entry tglobaladdr:$disp, G8RC:$reg))]>, isPPC64;
|
||||
let RST = 2, DS = 8 in
|
||||
|
||||
let RST = 2, DS_RA = 0 in // FIXME: Should be a pseudo.
|
||||
def LDinto_toc: DSForm_1<58, 0, (outs), (ins G8RC:$reg),
|
||||
"ld 2, 8($reg)", LdStLD,
|
||||
[(PPCload_toc G8RC:$reg)]>, isPPC64;
|
||||
|
||||
let RST = 2, DS = 40, RA = 1 in
|
||||
let RST = 2, DS_RA = 0 in // FIXME: Should be a pseudo.
|
||||
def LDtoc_restore : DSForm_1<58, 0, (outs), (ins),
|
||||
"ld 2, 40(1)", LdStLD,
|
||||
[(PPCtoc_restore)]>, isPPC64;
|
||||
@@ -628,8 +629,8 @@ def STHU8 : DForm_1<45, (outs ptr_rc:$ea_res), (ins G8RC:$rS,
|
||||
iaddroff:$ptroff))]>,
|
||||
RegConstraint<"$ptrreg = $ea_res">, NoEncode<"$ea_res">;
|
||||
|
||||
def STDU : DSForm_1<62, 1, (outs ptr_rc:$ea_res), (ins G8RC:$rS,
|
||||
s16immX4:$ptroff, ptr_rc:$ptrreg),
|
||||
def STDU : DSForm_1a<62, 1, (outs ptr_rc:$ea_res), (ins G8RC:$rS,
|
||||
s16immX4:$ptroff, ptr_rc:$ptrreg),
|
||||
"stdu $rS, $ptroff($ptrreg)", LdStSTD,
|
||||
[(set ptr_rc:$ea_res, (pre_store G8RC:$rS, ptr_rc:$ptrreg,
|
||||
iaddroff:$ptroff))]>,
|
||||
|
Reference in New Issue
Block a user