| # REQUIRES: x86 |
| |
| # RUN: rm -rf %t && split-file %s %t |
| # RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a1.s -o %t/a1.o |
| # RUN: ld.lld -T %t/1.t %t/a1.o -o %t/a1 --print-memory-usage \ |
| # RUN: | FileCheck %s --check-prefix=CHECK1 --match-full-lines --strict-whitespace |
| # RUN: ld.lld -T %t/2.t %t/a1.o -o %t/a2 --print-memory-usage \ |
| # RUN: | FileCheck %s --check-prefix=CHECK2 --match-full-lines --strict-whitespace |
| # RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a2.s -o %t/a2.o |
| # RUN: ld.lld -T %t/3.t %t/a2.o -o %t/a3 --print-memory-usage \ |
| # RUN: | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace |
| |
| # CHECK1:Memory region Used Size Region Size %age Used |
| # CHECK1-NEXT: ROM: 4 B 1 KB 0.39% |
| # CHECK1-NEXT: RAM: 4 B 256 KB 0.00% |
| # CHECK1-NOT:{{.}} |
| |
| # CHECK2:Memory region Used Size Region Size %age Used |
| # CHECK2-NOT:{{.}} |
| |
| # CHECK3:Memory region Used Size Region Size %age Used |
| # CHECK3-NEXT: ROM: 256 KB 1 MB 25.00% |
| # CHECK3-NEXT: RAM: 32 B 2 GB 0.00% |
| # CHECK3-NOT:{{.}} |
| |
| #--- a1.s |
| .text |
| .globl _start |
| _start: |
| .long 1 |
| |
| .data |
| .globl b |
| b: |
| .long 2 |
| |
| #--- a2.s |
| .text |
| .globl _start |
| _start: |
| .space 256*1024 |
| |
| .data |
| .globl b |
| b: |
| .space 32 |
| |
| #--- 1.t |
| MEMORY { |
| ROM (RX) : ORIGIN = 0x0, LENGTH = 1K |
| RAM (W) : ORIGIN = 0x100000, LENGTH = 256K |
| } |
| SECTIONS { |
| . = 0; |
| .text : { *(.text) } |
| .data : { *(.data) } |
| } |
| |
| #--- 2.t |
| SECTIONS { |
| . = 0; |
| .text : { *(.text) } |
| .data : { *(.data) } |
| } |
| |
| #--- 3.t |
| MEMORY { |
| ROM (RX) : ORIGIN = 0x0, LENGTH = 1M |
| RAM (W) : ORIGIN = 0x1000000, LENGTH = 2048M |
| } |
| SECTIONS { |
| . = 0; |
| .text : { *(.text) } |
| .data : { *(.data) } |
| } |